本篇对所有主流排序算法进行横向对比,帮助你在面试中快速选择正确的排序策略。
一、排序算法全景表
Mermaid · 渲染中(下方为源码)
graph LR A[排序] --> B[比较类 O(n log n)] A --> C[非比较类 O(n)] B --> D[快排/归并/堆] C --> E[计数/桶/基]
| 算法 | 平均时间 | 最坏时间 | 最好时间 | 空间 | 稳定 | 核心思想 |
|---|---|---|---|---|---|---|
| 冒泡排序 | O(n²) | O(n²) | O(n) | O(1) | ✅ | 相邻交换 |
| 选择排序 | O(n²) | O(n²) | O(n²) | O(1) | ❌ | 选最小放前面 |
| 插入排序 | O(n²) | O(n²) | O(n) | O(1) | ✅ | 向前找位置插入 |
| 希尔排序 |