广度优先搜索(BFS)可视化工具
在网格地图上交互式演示广度优先搜索——绘制墙壁、拖动起点/终点、生成迷宫,逐层查看搜索范围如何扩展。直接在浏览器中运行。
Click & drag on the grid to draw walls · drag the green and red squares to move start / goal · then press Play. Want a challenge? Hit 亲自试玩 and solve the maze by hand.
Move the indigo token with ↑ ↓ ← → / WASD (or tap an adjacent cell) from the green start to the red goal. Walls block you.
伪代码
Time · Space
使用方法
- 1 点击并拖动鼠标绘制墙壁;拖动绿色的起点或红色的终点即可移动它们的位置。
- 2 点击 Play 观看 BFS 从起点开始逐层扩展的过程。
- 3 使用 Maze 可以立即生成障碍物,使用 Step 可以逐格执行搜索。
- 4 在无权重网格上,BFS 找到的路径必定是最短的(经过的格子数最少)。
为什么使用此工具
- 直观看到搜索前沿(frontier)一圈圈向外扩展——这是 BFS 的典型特征。
- 理解 BFS 为什么能在无权重图上找到最短路径。
- 对比 BFS 的均匀扩展方式与 DFS(沿单一方向深入)、A*(直奔目标)的差异。
- 完全在你的浏览器中运行,无需注册,也无需上传任何数据。
常见问题
什么是广度优先搜索?
BFS 借助队列结构逐层探索图:先访问某个节点的所有相邻节点,再继续访问这些相邻节点的邻居。在无权重图上,该算法能够找到最短路径。
BFS 的时间复杂度是多少?
O(V + E)——每个顶点和每条边都只会被处理一次,其中 V 是顶点数,E 是边数。
BFS 总能找到最短路径吗?
在无权重图上可以。如果是带权重的图,应该使用 Dijkstra 或 A*,因为这些算法会考虑每条边的权重成本。
BFS 和 DFS 有什么区别?
BFS 使用队列并逐层向外扩展(在无权重图上能保证找到最短路径);DFS 使用栈,会沿着一条路径尽可能深入之后再回溯(不能保证找到最短路径)。
什么是 广度优先搜索(BFS)可视化工具?
广度优先搜索(BFS)可视化工具通过队列结构模拟 BFS 逐层探索网格的过程,从起点开始一圈一圈地向外扩展。在无权重网格中,该算法能够找到最短路径,找到终点时会将这条路径高亮显示出来。
功能特性
逐步动画演示
观察队列如何一层一层地扩展搜索前沿(frontier)。
复杂度
时间复杂度:O(V + E)。空间复杂度:O(V)。可在无权图中找到最短路径。
100% 隐私保护
完全在你的浏览器中运行——不会上传任何数据。
示例
Input
graph 1–2, 1–3, 2–4, 3–4; start 1
Output
visit order: 1 → 2 → 3 → 4 (level by level)
常见使用场景
-
1
最短路径(无权图)
了解为什么 BFS 能从源点找到边数最少的路径。
-
2
按层遍历
逐层探索图或树结构。
-
3
连通性与可达性
查找从起点可以到达哪些节点。
Zerethon 的 BFS 可视化工具在浏览器中动态演示图的广度优先搜索,使用队列(queue)从源点开始逐层探索。BFS 的时间复杂度为 O(V + E),空间复杂度为 O(V),可在无权图中找到最短路径(边数最少的路径)。
- 分类
- 算法
- 价格
- 免费
- 隐私
- 基于浏览器
- 注册
- 无需
参考资料
- MIT OCW 6.006 — Introduction to Algorithms (CLRS) — MIT OpenCourseWare
- VisuAlgo — DFS/BFS — VisuAlgo(新加坡国立大学)
- Breadth-first search — 维基百科
隐私
除非另有说明,否则你的数据永远不会离开浏览器。广度优先搜索(BFS)可视化工具 完全在客户端运行 — 无需上传服务器,不记录日志,不追踪你输入的内容。
刚接触?阅读包含 Big-O 分析的分步讲解: 了解 Graph Algorithms →
在 Zerethon Social 上创作、分享与成长
免费注册。赚取积分,收集成就,与全球创作者建立联系。