14.6:排序总结
14.6:排序总结
1、不基于比较的排序,对样本数据有严格的要求,不易改写。
2、基于比较的排序,只要规定好两个样本怎么比大小就可以直接复用。
3、基于比较的排序,时间复杂度的极限是O(N * logN)。
4、时间复杂度O(N * logN)、额外空间复杂度低于O(N)、且稳定的基于比较的排序是不存在的。
5、为了绝对的速度选快排、为了省空间选堆排,为了稳定性选归并。
常见的坑:
1、归并排序的额外空间复杂度可以变成O(1),“归并排序内部缓存法”,但是将 变的不再稳定。
2、“原地归并排序是垃圾帖”,会让时间复杂度变成O(N2)。
3、快速排序稳定性改进,“01 stable sort”,但是会对样本数据要求更多。