🗂️ 排序算法 (Sorting Algorithms)
归档: #Algorithm #Sorting
状态: 🌲 知识树根节点
最后更新: 2026/01/21
🗺️ 知识导航 (Map)
排序算法是计算机科学的基石。我们将常见的排序算法根据时间复杂度和应用场景分为两大阵营:
代码段
🐢 基础排序 (Elementary Sorts)
适合小规模数据、教学演示或特定几乎有序的场景。
| 笔记链接 | 核心口诀 | 最佳场景 |
|---|---|---|
| 冒泡排序 | 大鱼吃小鱼,大鱼往后冒 | 教学演示,检测是否已有序 |
| 选择排序 | 狙击手模式,每次抓最小 | 交换成本极高时(交换少) |
| 插入排序 | 理扑克牌,倒着找坑位 | 数据量小 (<16) 或 基本有序 |
🚀 高级排序 (Advanced Sorts)
分治法与堆结构的结晶,工业级应用的主力。
| 笔记链接 | 核心思想 | 核心优势 |
|---|---|---|
| 快速排序 | 分治 (Partition):找老大,分左右 | 数组排序之王,速度最快 |
| 归并排序 | 分治 (Merge):先拆散,再合并 | 链表排序之王,稳定 |
| 堆排序 | 堆结构 (Heap):利用完全二叉树 | Top K 问题,节省空间 |
📊 终极速查表 (Cheat Sheet)
在面试前或刷题时,直接参考此表决定使用哪种算法:
| 算法 | 时间复杂度 (平均) | 空间复杂度 | 稳定性 | 备注 |
|---|---|---|---|---|
| 冒泡排序 | ✅ | 效率低,不仅慢还累 | ||
| 选择排序 | ❌ | 无论给什么数据,都是 | ||
| 插入排序 | ✅ | 数据越有序,速度越快 | ||
| 快速排序 | ❌ | 最坏情况 (需随机化优化) | ||
| 归并排序 | ✅ | 需要额外 temp 数组空间 | ||
| 堆排序 | ❌ | 也是 ,但常数项比快排大 |
📝 学习路线建议
TIP
点击上方的 [[ ]] 链接即可跳转到对应的详细笔记。请确保文件名与链接名一致。
