Sort Visualizer
逐步观看排序算法的运行过程
排序可视化工具可以将排序算法重新排列数据的过程动画化 — 每一次比较和交换都会实时呈现出来,让 O(n²) 和 O(n log n) 排序之间的差异变成你可以亲眼看到的东西,而不只是纸上谈兵。
在下方选择一种算法,在你自己的数据上运行它,控制速度,并逐步前进或后退。每种算法都会说明它的原理、适用场景,以及时间和空间复杂度。
浏览 Visualizers
Bubble Sort Visualizer
反复交换相邻的乱序元素对,直到列表排序完成。O(n²) — 最经典的入门算法。
Insertion Sort Visualizer
每次将一个元素插入已排序的前缀部分。最坏情况为 O(n²),但在接近有序的数据上接近 O(n)。
Selection Sort Visualizer
反复从剩余元素中选出最小的一个并放到下一个位置。O(n²),交换次数最少。
Merge Sort Visualizer
分治法:拆分、分别排序,再合并。保证 O(n log n),稳定排序,但需要额外内存。
Quick Sort Visualizer
围绕一个基准元素进行分区并递归处理。实践中通常最快;平均 O(n log n),最坏情况 O(n²)。
Heap Sort Visualizer
构建一个二叉堆,并反复取出最大值。O(n log n),原地排序,无需额外内存。
为什么要将排序算法可视化?
排序往往是大多数人第一次接触算法分析的地方,而通过可视化理解起来要容易得多。看着冒泡排序缓慢爬行,而快速排序只需几轮就能完成分区,能让 Big-O 变得直观易懂;观察插入排序在几乎已排序的数据上飞速运行,也说明了常数因子和输入数据形状为何如此重要。这些可视化工具专为学生、面试备考者,以及任何想要教授或学习排序原理的人而设计。
常见问题
什么是排序可视化工具?
排序可视化工具是一种交互式工具,它将排序算法的每一步 — 比较和交换 — 动画化呈现,让你能够看到数据是如何被排序的,并理解它为何具有特定的时间复杂度。
哪种排序算法最快?
对于一般数据而言,O(n log n) 的排序算法 — 归并排序、快速排序和堆排序 — 是最快的。快速排序在实践中通常最快,归并排序能保证最坏情况下也是 O(n log n),而堆排序则可以原地排序,无需额外内存。
这些排序可视化工具是免费的吗?
是的。每个可视化工具都完全在你的浏览器中运行,免费使用,无需注册,也不会有任何数据离开你的设备。
我应该先学习哪种排序算法?
建议先从冒泡排序或插入排序入手,建立对比较和交换的直觉,然后再学习归并排序和快速排序,了解分治法是如何实现 O(n log n) 的。