算法:
1 2 3 4 5 | for i = 2:n, for (k = i; k > 1 and a[k] < a[k-1]; k--) swap a[k,k-1] → invariant: a[1..i] is sorted end |
算法性质:
- 稳定
- 需要O(1)的额外空间开销
- 需要O(n2)复杂度的比较和交换。
- 具有自适应性:当待排序序列接近有序时,复杂度为O(n)。
- 开销较低
讨论:
虽然在最坏情况下,插入法排序的复杂度为O(n2),但当序列已经接近有序(算法具有自适应性)或者问题规模比较小(空间开销很小)时,插入法排序还是一种比较好的选择。所以,插入法排序,通常可以作为其他诸如归并排序、快速排序等递归递归排序的基础。
[tip]
关于自适应性的一种解释:自适应性是指特定条件下形状结构及过程自身的趋向性.
[/tip]
你好!除了代码,此处没有多少原创之物,皆为本人搜集、整理、总结之记录与心得,欢迎转载分享!转载时请尽量注明出处,将不胜感激。祝你健康、快乐!
感觉好像是冒泡排序吧 。。。