2-路插入排序c语言算法,一种非循环2路插入排序算法.pdf

· 66 · 工业仪表与 自动化装置 2012年第2期

一 种非循环2路插入排序算法

王 昱,杨小萍,陈延文,李德录

(天水师范学院 物理与信息科学学院,甘肃 天水741000)

摘要:提出了一种非循环2路插入排序算法,给出了算法思想及其实现,该算法与传统2路插

入排序算法相比,时间效率得到了改善,空间复杂度 由原来的0(n)降低为0(1)。

关键词:数据结构;2路插入排序;算法

中图分类号 :TP311 文献标志码 :A 文章编号:1000—0682(2012)02—0066—03

A non circular2-way insertion sortalgorithm

WANG Yu,YANG Xiaoping,CHEN Yanwen,LIDelu

(SchoolofPhysicsandInformationScience,TianshuiNormalUniversity,GansuTianshui741000,China)

Abstract:Inthispaper,anoncircular2-wayinsertionsortalgorithm isproposed,anditsalgorithm

principleandimplementationareintroduced.Thetimecomplexityofthis2-wayinsertionsortalgorithm is

betterthanoriginalones,andthespacecomplexityisreducedto0(1)fromtheoriginalO(n).

Keywords:datastructure;2-wayinsertionsort;algorithm

。 在实现算法时,并不将其看作一个循环向量。初

0 引言

始时,对顺序表 L.r的所有记录的关键字值进行比

直接插入排序算法是一种最简单的排序算法, 较,将关键字值最小的记录存放在 Lr[0]中,关键

它的时间复杂度为O(n),空间复杂度为O(1)…。 字值最大的记录存放在 L.r[n一1]中,这样就在顺

传统2路插入排序算法是对直接插入排序算法和折 序表 L.r的前后两端形成了2个只含有一个记录的

半插入排序算法的一种改进,额外开辟了n个记录 有序表L.r[0]~L.r[0]和L.r[n一1]~L.r[n一

的辅助空间(与待排序顺序表同类型的数组,并将 1],同时计算L.r[0]和L.r[n一1]的关键字值的中

其看作一个循环 向量),算法 的时 间复杂度是 问值midkey(即midkey:(L.r[0].key+L.r[n一

O(凡),空间复杂度为 O(n) 。 1].key)/2)。然后,置 i=1,=n一2,从P=i开始,

该文提出了一种非循环2路插人排序算法,即 到P 结束,根据 L.r[P].key与 midkey的比较结

将待排序顺序表并不看成循环向量,也不额外增加 果,将L_r[P]插入到前端或后端的有序表中。每次

凡个记录的辅助空问,只另设一个存放数据记录的 插入时,首先将L.r[P]暂存到临时存储单元 中,

临时存储单元,在原顺序表上进行排序。在一般情 然后让 (即原来的L.r[P])的关键字值与midkey

况下,其比较次数和移动记录次数都是直接插入排 进行比较,如果 的关键字值小于midkey,则将 插

序算法 的一半,虽然算法 的时间复杂度仍然是 入到前端的有序表L.r[0]~L.r[i一1]中,然后使 i

O(Z/),但与传统2路插入排序算法相比,该算法的 加 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值