排序算法

分类:数据结构与算法 · 更新于 2026-09

排序是最基础的算法训练。理解它们的 trade-off,比背代码更重要。

常见排序对比

  • 冒泡/插入:简单但 O(n²),小规模或基本有序时插入尚可。
  • 快排:平均 O(n log n),分治+基准;最坏 O(n²),工程上常随机化或切换阈值。
  • 归并:稳定 O(n log n),需额外空间,适合链表与外排序。
  • 堆排:O(n log n),原地但不稳定,常用于优先队列。

工程中的选择

语言内置排序(如 Java Arrays.sort、Python sorted)通常对基本类型用双轴快排、对对象用归并的变体,并在小数据量切换插入排序。理解这一点,就不会在"该用什么排序"上纠结。

# Python 一行排序(稳定,Timsort)
sorted(items, key=lambda x: x.score, reverse=True)

← 返回首页