插入法排序及其优化的代码实现

本文介绍插入排序的基本原理及其时间复杂度,并提出一种优化方案——利用二分查找确定插入位置,从而减少比较次数,提高排序效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 插入法排序

算法思想:

逐个处理待排序的记录,每个记录都要与前面那些已排好序的记录进行比较,然后插入到适当的位置。


算法分析:

稳定

空间代价 O(1)

时间代价:

最佳情况:O(n)

最差情况:O(n^2)

平均情况:O(n^2)

2 插入法排序的优化(使用二分法查找被插元素的正确的位置)

算法思想:

在插入第i个记录时,前面的记录已经是有序的了,可以用二分法查找第i个记录的正确位置。


算法分析:

稳定

空间代价:O(1)

时间代价:

插入每个元素都需要O(logi)次比较

最多移动I+1次,最少两次

最佳情况的时间代价为:O(n*logn)

最差和平均情况的时间代价O(n^2)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值