本局目标

比较算法如何把数组变成有序。

操作提示

选择算法、速度和数据量后开始。

下一枚徽章

完成多算法对比,点亮排序专家目标。

排序可视化 · 算法竞赛场

观察不同排序算法如何一步步将混乱变为有序。

0比较
0交换
0ms
默认
比较中
交换中
已排序
枢轴

排序算法一览

排序是计算机科学最基础的操作之一。不同算法在时间复杂度、稳定性和适用场景上各有优劣。

冒泡排序 · Bubble Sort

反复比较相邻元素,若顺序错误则交换。每轮将最大值「冒泡」到末尾。时间 O(n²),稳定排序。

选择排序 · Selection Sort

每轮从未排序部分找到最小元素,放到已排序部分末尾。时间 O(n²),不稳定。

插入排序 · Insertion Sort

将每个元素插入到前方已排序部分的正确位置,类似整理扑克牌。时间 O(n²),对近乎有序的数据很高效,稳定。

归并排序 · Merge Sort

分治策略:将数组一分为二,递归排序后合并。时间 O(n log n),稳定,但需要额外空间。

快速排序 · Quick Sort

选择一个枢轴(pivot),将数组分为小于和大于枢轴的两部分,递归排序。平均 O(n log n),最坏 O(n²),不稳定但实际运行极快。

颜色含义

  • 蓝色 — 默认状态,尚未被访问
  • 黄色 — 正在比较的元素
  • 红色 — 正在交换的元素
  • 绿色 — 已经排好序的元素
  • 紫色 — 枢轴元素(快速排序/选择排序)

为什么 O(n log n) 重要?

当数据量 n 从 100 增长到 10,000 时,O(n²) 算法的操作次数从 10,000 增长到 100,000,000(一亿),而 O(n log n) 只从约 664 增长到约 133,000。规模越大,差距越悬殊——这就是算法效率的力量。

试一试

  • 选择冒泡排序和快速排序分别运行 100 个元素,对比比较和交换次数。
  • 调整速度为「慢」,仔细观察每一步的比较与交换过程。
  • 尝试不同数组大小,感受 O(n²) 和 O(n log n) 的差距。
首页
探索
自然
社区