【0】README
- 0.1)插入排序由 N-1 趟排序组成,对于P=1趟 到P=N-1趟, 插入排序保证从位置0到位置P 上的元素为已排序状态;
- 0.2)插入排序利用了这样的事实:位置0 到位置P-1 上的元素已经排过序了;
【1】一般的插入排序的过程如下图所示:
- 1.1) p等于多少,序列前的多少个元素就保持有序状态;
1.2) 插入排序源代码参见 https://github.com/pacosonTang/dataStructure-algorithmAnalysis/blob/master/chapter7/p166.c, 打印结果如下:
1.3)复杂度分析
- 1.3.1)最好情况:也即数组预先就有序了: 显然是O(N)
- 1.3.2)最差情况:数组预先逆序排列(如结果是升序而预先是降序),T(N) = O(N^2)
Attention): 我们的快速排序也用到了插入排序,以解决 待排序数组是小数组(N <= 20)的问题;通常对于小数组不递归的使用快速排序, 而代之以诸如 插入排序这样的对小数组有效的排序算法;
版权声明:本文为博主原创文章,未经博主允许不得转载。