Skip to content
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。