7 种常见算法,逐步动画、速度调节、手动输入数字、通俗讲解、完整 Python 实现。重点理解「每一步在做什么」,而不是死记代码。
sorted(nums) 或 nums.sort()。| 算法 | 一句话原理 | 平均时间 | 最坏时间 | 额外空间 | 稳定性 |
|---|---|---|---|---|---|
| 冒泡排序 | 相邻比较并交换 | O(n²) | O(n²) | O(1) | 是 |
| 选择排序 | 每轮选最小的放前面 | O(n²) | O(n²) | O(1) | 否 |
| 插入排序 | 把新元素插入有序区 | O(n²) | O(n²) | O(1) | 是 |
| 快速排序 | 基准分区,再递归两边 | O(n log n) | O(n²) | 平均 O(log n) | 否 |
| 归并排序 | 拆半排序,再有序合并 | O(n log n) | O(n log n) | O(n) | 是 |
| 堆排序 | 每轮把堆顶最大值取出 | O(n log n) | O(n log n) | O(1) | 否 |
| 计数排序 | 统计整数次数后定位 | O(n+k) | O(n+k) | O(n+k) | 可稳定 |
注意:本页面的快速排序固定选最后一个元素为基准,因此已排序、逆序等输入可能退化为 O(n²)。计数排序只适用于整数,尤其适合数值范围较小的数据。