一、内部排序算法的比较
(一)时间复杂度
- 简单选择排序、直接插入排序、冒泡排序平均情况下的时间复杂度都为O(n·n)。
- 希尔排序对较大规模的排序都可以达到很高的效率。
- 快排在实际应用中常优于其他算法。
(二)空间复杂度
- 简单选择、插入、冒泡、希尔、堆排序都仅借助常数个辅助空间。
- 快速排序在空间上仅使用一个小的辅助栈,用于实现递归。
(三)稳定性
- 插入、冒泡、归并、基数是稳定的排序方法。
- 简单选择、快排、希尔、堆排序都是不稳定的。
(四)应用
- 若n较小(n<=50),则可采用直接插入汗如简单选择。
- 文件的初始状态已经按照关键字基本有序,直接插入或者冒泡。
- n较大,采用快排、堆排序、归并排序;快排被认为是最好的,平均时间短。