SORTOrdering Algorithms
排序算法
排序是最容易看到复杂度差异的一类算法。这个专题会把时间复杂度、空间复杂度、稳定性和适用场景放在一起分析,而不是只背结论表格。
3内容分组
O(n log n)主流性能基线
2关键维度
专题结构
排序板块会先按算法族拆开,再在每一类内部分析思路、复杂度来源和什么时候该用、什么时候不该用。
BASICPlanned
基础排序
冒泡、选择、插入排序适合作为复杂度和原地交换的入门材料,用来理解为什么更优算法有存在必要。
NLOGNPlanned
高频主力排序
快速排序、归并排序、堆排序是理解分治、递归、额外空间与稳定性的核心组合。
LINEARPlanned
线性排序
计数排序、桶排序、基数排序依赖输入分布或额外假设,适合用来理解突破比较排序下界的条件。
速览对比
下面这张表只作为入口索引。真正有价值的是理解复杂度为什么这样、稳定性怎么影响场景选择,以及递归和额外空间是怎么来的。
| 算法 | 时间复杂度 | 空间复杂度 | 稳定性 | 适用场景 |
|---|---|---|---|---|
| 冒泡排序 | O(n²) | O(1) | 稳定 | 教学入门 |
| 插入排序 | O(n²) | O(1) | 稳定 | 小规模 / 近乎有序 |
| 快速排序 | O(n log n) | O(log n) | 不稳定 | 通用主力 |
| 归并排序 | O(n log n) | O(n) | 稳定 | 稳定排序 / 外部排序 |
| 堆排序 | O(n log n) | O(1) | 不稳定 | Top-K / 优先队列衍生 |
阅读建议
不要死记表格
单纯背复杂度表很快会忘。更稳的方式是从“每一步做了什么比较、交换和递归”去反推时间与空间成本。
先比较,再落场景
同样是 O(n log n),快速排序、归并排序和堆排序的常数、稳定性和空间开销完全不同,不能只看一个大 O。
