数据结构排序算法摘要

这里是引用
1.插入排序:
(1).直接插入排序:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的序列
(2).折半插入排序:在将一个元素插入已排好序的数组的过程中,寻找插入点,将待插入区域的首元素设为a[low],末元素设为a[high],则轮比较时将待插入元素与a[mid]相比较,其中mid=(low+high)/2,如果比a[mid]
小,则选择a[low]到amid-1为新的插入区域,否则选择amid+1到a[high]为新的插入区域,直到low<=high不成立,即将此位置(包括low)之后所有元素后移一位,并将新元素插入a[low]
(折半插入排序是对直接插入排序的一种改进,减少了比较次数)
(3).二路插入排序:另设一个和待排数组arr同类型的数组brr,首先将arr[1]赋值给brr[1],并将brr[1]看成
是在排好序的序列中处于中间位置的记录,然后从arr中第二个记录开始依次插入到brr[1]之前或之后的有序序列
中。先将待插记录的关键字和brr[1]的关键字进行比较,若arr[i].key<brr[1].key,则将arr[i]插入到brr[1]之前的有序表中。反之,则将arr[i]插入到brr[1]之后的有序表中。在实现算法时,可将brr看成一个循环变量(数组首尾循环),并设两个指针first和final分别指示排序过程中得到的有序序列中的第一个记录和最后一个记录在brr中的位置。
(二路

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值