算法分析(一)内部排序概述
排序算法可以分为:
- 内部排序,数据记录在内存中进行排序。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。
- 外部排序,因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。
这里是讲述内部排序。没有一种排序是最好的:有些方法适用于n较小的情况,有些方法适用于n较大的情况。
- 当输入序列部分有序,或n较小时,插入排序可以很好地工作。
- 如果考察排序算法在最坏情况下的时间性能,归并排序是最好的,但比堆排序的空间开销更大,也比快速排序的空间开销更大。
- 如果考虑排序算法的平均时间性能,快速排序是最好的。
- 基数排序的时间性能取决于关键字的规模和基数的选取。
引自十大经典排序算法(动图演示) - 一像素 - 博客园 (cnblogs.com)
参考
- 时间复杂度:https://www.cnblogs.com/vicky2021/p/16029558.html
- 空间复杂度:https://www.cnblogs.com/vicky2021/p/16029558.html
- 稳定性:两个相等的数据在序列中的位置,在排序之前和在排序之后顺序相同,例如,当Ai = Aj时,在排序之前,Ai的位置顺序在Aj的位置顺序之前,在排序之后,Ai的位置顺序仍然在Aj的位置顺序之前。