常见排序算法的性能对比

时间复杂度 空间复杂度 可否实现稳定性
选择 \(O(N^2)\) \(O(1)\) No
冒泡 \(O(N^2)\) \(O(1)\) Yes
插入 \(O(N^2)\) \(O(1)\) Yes
归并 \(O(N\log N)\) \(O(N)\) Yes
快速 \(O(N\log N)\) \(O(\log N)\) No
\(O(N\log N)\) \(O(1)\) No

排序算法的稳定性

同样值的个体之间,如果不因为排序而改变相对次序,就是这个排序是有稳定 性的;否则就没有。

  • 不具备稳定性的排序
    • 选择排序、快速排序、堆排序
  • 具备稳定性的排序
    • 冒泡排序、插入排序、归并排序、一切桶排序思想下的排序

目前没有找到时间复杂度\(O(N*logN)\),额外空间复杂度\(O(1)\),又稳定的排序。

posted @ 2021-02-01 12:34  对影成一双  阅读(51)  评论(0编辑  收藏  举报