复习2-插入排序

插入排序不复杂,简单来讲,相当于在洗完的牌堆里每次抽一张牌,放到手里和已有的牌排序。这里有三个假设:

1. 手里的牌已经是排好序的

2. 每次抽一张牌,按序列插入到已有的序列中

3. 直到抽完牌堆里所有的牌,排序结束

经过上面三步,完成了插入排序,算法复杂度最好的情况是O(n),比如洗完的牌就是按顺序排放的,最坏的情况是O(n^2),比如每次抽到的牌都是逆序的。那么该算法总体来说复杂度就是O(n^2)。

下面是golang实现的算法:

插入排序

测试例子如下:

old arr:  [45 2 34 43 34 90 1 2 3 2 45 2 34 43 34 90 1 2 3 2]

new arr:  [1 1 2 2 2 2 2 2 3 3 34 34 34 34 43 43 45 45 90 90]

算法实现很容易理解,重点要处理好临界值特殊情况

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、 单项选择题(共71题) 对n个元素的序列进行冒泡排序时,最少的比较次数是( )。A. n ...
    貝影阅读 9,484评论 0 10
  • 曾经有一份美好的爱情放在我的面前我没有珍惜。等到失去后才后悔莫及。如果可以再对小李说。毛欣想说。这辈子无缘再牵手。...
    毛欣与小李阅读 3,483评论 0 13
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 35,211评论 18 399
  • 一. 写在前面 要学习算法,“排序”是一个回避不了的重要话题,在分析完并查集算法和常用数据结构之后,今天我们终于可...
    Leesper阅读 2,699评论 0 40
  • 概述:排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部...
    每天刷两次牙阅读 3,872评论 0 15

友情链接更多精彩内容