# 排序算法
# 简介
排序算法是最基础也是最重要的算法之一。本章节将详细介绍几种常见的排序算法,包括冒泡排序、选择排序、插入排序、归并排序和快速排序。每种算法都配备了交互式可视化演示,帮助你更直观地理解算法的工作原理。
# 算法列表
# 1. 冒泡排序(Bubble Sort)
- 时间复杂度:O(n²)
- 空间复杂度:O(1)
- 稳定性:稳定
比较次数: 0
交换次数: 0
# 2. 选择排序(Selection Sort)
- 时间复杂度:O(n²)
- 空间复杂度:O(1)
- 稳定性:不稳定
比较次数: 0
交换次数: 0
# 3. 插入排序(Insertion Sort)
- 时间复杂度:O(n²)
- 空间复杂度:O(1)
- 稳定性:稳定
比较次数: 0
交换次数: 0
# 4. 归并排序(Merge Sort)
- 时间复杂度:O(n log n)
- 空间复杂度:O(n)
- 稳定性:稳定
比较次数: 0
交换次数: 0
# 5. 快速排序(Quick Sort)
- 时间复杂度:O(n log n)
- 空间复杂度:O(log n)
- 稳定性:不稳定
比较次数: 0
交换次数: 0
# 算法比较
算法 | 平均时间复杂度 | 最坏时间复杂度 | 空间复杂度 | 稳定性 |
---|---|---|---|---|
冒泡排序 | O(n²) | O(n²) | O(1) | 稳定 |
选择排序 | O(n²) | O(n²) | O(1) | 不稳定 |
插入排序 | O(n²) | O(n²) | O(1) | 稳定 |
归并排序 | O(n log n) | O(n log n) | O(n) | 稳定 |
快速排序 | O(n log n) | O(n²) | O(log n) | 不稳定 |
# 如何选择排序算法
小规模数据(n < 50)
- 推荐使用插入排序
- 代码简单,常数项小
- 对接近有序的数据特别高效
中等规模数据(50 ≤ n < 10000)
- 推荐使用快速排序
- 平均性能最优
- 原地排序,空间效率高
大规模数据(n ≥ 10000)
- 推荐使用归并排序
- 稳定的O(n log n)时间复杂度
- 适合外部排序
特殊需求
- 需要稳定排序:使用冒泡排序(小规模)或归并排序(大规模)
- 空间严格受限:使用选择排序或冒泡排序
- 数据基本有序:使用插入排序