1 总结
- 优化后的快速排序性能最优;
- 序列情况:如果待排序列基本有序,或者序列短,适合采用简单算法(冒泡、选择、插入),序列长适合改进的算法;
- 时间情况:堆排与归并排较为稳定,而快排时间不确定;
- 空间情况:归并排强调要马跑得快,就要给马吃饱。快排次之,堆排最少。
- 稳定性情况:归并排最好;
2 排序示意图
下图均来自菜鸟教程的内容:链接
1)冒泡
主要思想:两两比较,大的后移。每次循环都要将一个最大的移动到最后。
2)选择
主要思想:第i个循环针对第i个位置,就是说第一次循环要找到第一小的元素,第二次循环要找到第二小的元素。在每个循环中,使用第i个位置的元素作为最小值min,依次与后边的元素进行比较,比较过程中,如果有比min更小,改变min并继续与后边的进行比较。但是其在每个循环过程中只是在挑选最小值,对后边的序列并没有影响。
3)插入
主要思想:使用当前值与前面的依次比较,如果小就移动。
4)希尔
主要思想:插入的改进。
5)堆排
6)归并
7)快排