插入排序
2015-10-03 17:27
267 查看
【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)的问题;通常对于小数组不递归的使用快速排序, 而代之以诸如 插入排序这样的对小数组有效的排序算法;
相关文章推荐
- 114. Flatten Binary Tree to Linked List (Stack, Tree; DFS)
- 【Python之旅】第五篇(三):Python Socket多线程并发
- [Cpp]去掉字符串空白2
- 网络方面的面试题
- 大端对齐和小段对齐
- 1009. Product of Polynomials (25)
- Spark应用程序的运行框架
- Java垃圾回收机制
- 典型关联分析CCA(canonical correlation analysis)
- 1008. Elevator (20)
- Spark运行各个时间段的解释
- java7 invokedynamic学习笔记
- prefast 使用
- Servlet入门之HelloWorld
- 1007. Maximum Subsequence Sum (25)
- Spark技术内幕:Stage划分及提交源码分析
- 第4周项目5-循环双链表应用
- thinkphp中的参数绑定
- leetcode Construct Binary Tree from Inorder and Postorder Traversal
- URL::to() 与 URL::toRoute()