常见排序算法特性

排序算法名称 平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 稳定性
插入排序 \(O(n^2)\) \(O(n^2)\) \(O(n)\) \(O(1)\) 稳定
希尔排序 \(O(n^{1.3})\) \(O(n^2)\) \(O(n)\) \(O(1)\) 不稳定
选择排序 \(O(n^2)\) \(O(n^2)\) \(O(n^2)\) \(O(1)\) 不稳定
堆排序 \(O(n log_2 n)\) \(O(n log_2 n)\) \(O(n log_2 n)\) \(O(1)\) 不稳定
冒泡排序 \(O(n^2)\) \(O(n^2)\) \(O(n^2)\) \(O(1)\) 稳定
快速排序 \(O(n log_2 n)\) \(O(n^2)\) \(O(n log_2 n)\) \(O(n log_2 n)\) 不稳定
归并排序 \(O(n log_2 n)\) \(O(n log_2 n)\) \(O(n log_2 n)\) \(O(n)\) 稳定
计数排序 \(O(n+k)\) \(O(n+k)\) \(O(n+k)\) \(O(n+k)\) 稳定
基数排序 \(O(n \times k)\) \(O(n \times k)\) \(O(n \times k)\) \(O(n+k)\) 稳定

特性:

  • 快速排序对有序数组不友好。

  • 与其他排序算法不同,基数排序、桶排序、计数排序都不基于比较和移动元素来进行排序,而是基于多关键字排序的思想。

posted @ 2024-08-12 11:16  MinimumSpanningTree  阅读(15)  评论(0)    收藏  举报