算法可视化动画

📄 约 694 字 · ⏱ 大约 2 分钟

算法可视化动画

把排序和查找的每一步都画出来,可以自动播放,也能一步一步慢慢看。

👉 进入算法可视化 →

五个算法

冒泡排序

从头到尾比较相邻两个,大的往后挪。一趟下来最大的一定冒到最后,所以每一趟都能确定一个位置。 比较次数约 n²/2,是最慢的,但最好懂。

选择排序

每一趟在还没排好的部分里找最小的,跟这趟开头那个交换。 比较次数也是 n²/2,但交换次数只有 n 次,比冒泡少很多。

插入排序

像抓扑克牌:拿到一张就往前插到合适位置,前面的比它大就往后挪一格。 数据本来就比较有序时特别快,最好情况是 n 次比较。

快速排序

选一个基准(这里选每段最后一个),比它小的放左边、大的放右边,基准归位,然后左右两边各自再排。 平均 n log n,是最快的;可视化里你会看到递归的区间一层一层缩小。

二分查找

数组必须有序。每次看中间那个,一眼排除掉一半。 20 个数最多看 5 次,100 万个数也只要看 20 次。

怎么玩

  • 选算法 → 拖「个数」滑杆(8 ~ 40)→ 点「🎲 换一组数据」
  • 点「▶ 自动播放」看整段动画,速度可以调到 1 ~ 40 步/秒
  • 点「⏭ 单步」一步一步走,每步下面都有中文解释在干嘛
  • 「⏮ 上一步」可以倒回去重看
  • 二分查找可以自己指定「要找的数」,试试填一个数组里没有的数

颜色含义

颜色 意思
浅蓝 普通
橙色 正在比较
红色 正在交换
紫色 基准(快排)/ 正在查看的位置(二分)
绿色 已经归位
灰色 不在当前处理的范围里

自定义数据

右边输入框可以填自己的数据,比如 5,3,8,1,9,2,点「用我填的数据」就按这组来跑。 同一组数据换不同算法跑,对比一下右上角的比较次数 / 交换次数,差别很直观。

小贴士

  • 想看清楚就选 8 ~ 12 个数,格子大、数字也看得见
  • 想看规模差异就选 40 个数,泡泡排序会明显比快排慢一大截
  • 快速排序的递归过程最容易看懵,建议先用单步走一遍

📰 每日速递 更多 →