在这篇之前,对常见的8中排序算法进行了梳理,《算法》第四版中的这一张图对各种排序算法的性能特点做了总结。
补充冒泡排序:稳定、原地排序、时间复杂度为n²,空间复杂度为1。
其它:
- 快速排序是最快的通用排序算法。
- 存在大量重复元素情况下,三向快速排序是不错的选择。
- 如果稳定性很重要而空间又不是问题,归并排序是最好的选择。
- 稳定性:如果一个排序算法能够保留数组中重复元素的相对位置则可以被称为是稳定的。
- 关于时间复杂度与空间复杂度中1、N、logN、N、NlogN、N²的含义可参见此文。
GitHub:https://github.com/AlbertKnag/algs-practice
(包含Java版与Javascript版所有排序算法样例代码)
上一篇:排序算法08:优先队列与堆排序