排序算法:插入排序

   日期:2024-12-28    作者:w9h2r 移动:http://ljhr2012.riyuangf.com/mobile/quote/77156.html

排序算法:插入排序

插入排序的思想是假设前n个元素是有序的,那么就把第n+1个元素插入到前n个元素中的适当位置,直到第m个元素
假设我有个数组{3,1,4,2}
那么对于第一次遍历来说
有序的就是 arr[0] 要插入的是arr[1]
经过比较后 第一轮的结果变为 {1,3,4,2}
对于第二次遍历
现在有序的是{1,3} 要插入的是 arr[2]
经过比较后 变为 {1,3,4,2}
对于第三次遍历:
现在有序的是{1,3,4} 要插入的是 arr[3]
经过比较 变为 {1,2,3,4}
排序结束

插入排序的平均时间复杂度为O(n * n),空间复杂度为O(1),最好情况下时间复杂度为O(n),最坏情况下为O(n * n)

排序工具类的书写可以参考 我的另一篇文章
链接: 排序算法:冒泡排序

 
 

如果数组本身基本有序 下列代码片段基本不会进入

 

所以时间复杂度就应该该是外层for循环,循环的次数,所以最好情况下时间复杂度为O(n)


 

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号