Skip to content

🗂️ 排序算法 (Sorting Algorithms)

归档: #Algorithm #Sorting

状态: 🌲 知识树根节点

最后更新: 2026/01/21

🗺️ 知识导航 (Map)

排序算法是计算机科学的基石。我们将常见的排序算法根据时间复杂度应用场景分为两大阵营:

代码段


🐢 基础排序 (Elementary Sorts)

适合小规模数据、教学演示或特定几乎有序的场景。

笔记链接核心口诀最佳场景
冒泡排序大鱼吃小鱼,大鱼往后冒教学演示,检测是否已有序
选择排序狙击手模式,每次抓最小交换成本极高时(交换少)
插入排序理扑克牌,倒着找坑位数据量小 (<16) 或 基本有序

🚀 高级排序 (Advanced Sorts)

分治法与堆结构的结晶,工业级应用的主力。

笔记链接核心思想核心优势
快速排序分治 (Partition):找老大,分左右数组排序之王,速度最快
归并排序分治 (Merge):先拆散,再合并链表排序之王,稳定
堆排序堆结构 (Heap):利用完全二叉树Top K 问题,节省空间

📊 终极速查表 (Cheat Sheet)

在面试前或刷题时,直接参考此表决定使用哪种算法:

算法时间复杂度 (平均)空间复杂度稳定性备注
冒泡排序效率低,不仅慢还累
选择排序无论给什么数据,都是
插入排序数据越有序,速度越快
快速排序最坏情况 (需随机化优化)
归并排序需要额外 temp 数组空间
堆排序也是 ,但常数项比快排大

📝 学习路线建议

  1. 入门: 先看 冒泡排序 理解交换,再重点掌握 插入排序(实用)。

  2. 进阶: 必须手写 快速排序,理解 Partition 的精髓。

  3. 精通: 掌握 归并排序解决链表问题,最后攻克 堆排序解决 Top K。


TIP

点击上方的 [[ ]] 链接即可跳转到对应的详细笔记。请确保文件名与链接名一致。

Released under the MIT License.