排序算法的性能分析

以下是 十种常见排序算法 的性能分析表,涵盖了它们的 时间复杂度空间复杂度。这些排序算法的选择依据不同的应用场景,比如数据规模、数据分布、是否要求稳定排序等。

排序算法 最优时间复杂度 平均时间复杂度 最差时间复杂度 空间复杂度 稳定性 备注
冒泡排序
(Bubble Sort)
$O(n)$ $O(n²)$ $O(n²)$ $O(1)$ 稳定 简单,但效率低。
选择排序
(Selection Sort)
$O(n²)$ $O(n²)$ $O(n²)$ $O(1)$ 不稳定 每次选择最小元素交换。
插入排序
(Insertion Sort)
$O(n)$ $O(n²)$ $O(n²)$ $O(1)$ 稳定 小规模数据时非常高效。
归并排序
(Merge Sort)
$O(n log n)$ $O(n log n)$ $O(n log n)$ $O(n)$ 稳定 需要额外空间。
快速排序
(Quick Sort)
$O(n log n)$ $O(n log n)$ $O(n²)$ $O(log n)$ 不稳定 平均性能最优。
堆排序
(Heap Sort)
$O(n log n)$ $O(n log n)$ $O(n log n)$ $O(1)$ 不稳定 堆排序保证 O(n log n) 时间。
计数排序
(Counting Sort)
$O(n + k)$ $O(n + k)$ $O(n + k)$ $O(k)$ 稳定 适用于有较小范围的整数数据。
桶排序
(Bucket Sort)
$O(n + k)$ $O(n + k)$ $O(n²)$ $O(n)$ 稳定 适合均匀分布的数据。
基数排序
(Radix Sort)
$O(d(n+r))$ $O(n*k)$ $O(n*k)$ $O(n + k)$ 稳定 适用于较小范围的数据。
希尔排序
(Shell Sort)
$O(n log n)$ $O(n^(3/2))$ $O(n²)$ $O(1)$ 不稳定 基于插入排序的改进。

排序算法的性能分析
https://clint456.github.io/2024/12/01/数据结构-year-12-01-排序算法的性能分析/
作者
Clint Luo
发布于
2024年12月1日
许可协议