折半插入排序

  • 原理
    折半插入排序的基本思想和直接插入排序类似,区别是查找插入位置的方法不同,折半插入排序是采用折半查找法来查找插入位置的。
    折半查找法的一个基本条件是序列已经有序,而从直接插入排序的流程中可以看出,每次都是在一个已经有序的序列中插入一个新的关键字,因此可以用折半查找法在这个有序序列中查找插入位置。

  • 复杂度
    最坏情况时间复杂度:O(n2),最好情况时间复杂度:O(nlog2n),则平均时间复杂度:O(n2)
    空间复杂度:O(1)

  • 实践
     133849657697 六个数字且他们为有序序列,在其中插入 27,步骤如下
下标: 0   1  2   3   4  5
low=0,high=5	(0+5)/2=2	27<4949的左半部分,low 不变,high=2-1=1
low=0,high=1	(0+1)/2=0	27>1313的右半部分,low=0+1=1,high 不变
low=1,high=1	(1+1)/2=1	27<3838的左半部分,low 不变,high=1-1=0
low > high , 所以最后 27 放于 high+1 的位置,即下标为 1 的位置


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

头疼小宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值