メインコンテンツへスキップ
Z

BFS vs DFS

BFS vs DFS compared — data structure, shortest paths, memory and use cases, with interactive visualizers for both.

Breadth-first search (BFS) explores a graph level by level with a queue; depth-first search (DFS) dives down one branch with a stack (or recursion). Both visit every node in O(V + E) but suit different problems.

BFS vs DFS at a glance

BFS DFS
Data structure Queue (FIFO) Stack / recursion
Shortest path (unweighted) Yes No
Memory Wide frontier Path depth
Best for Shortest paths, levels Cycles, topological sort, mazes

When to use BFS

Use BFS for shortest paths on unweighted graphs and level-order traversal.

When to use DFS

Use DFS for cycle detection, topological sorting, and exploring all paths.

Tools for BFS & DFS

幅優先探索(BFS)ビジュアライザー

グリッド上でインタラクティブに幅優先探索を体験できるツール。壁を描き、スタート地点とゴール地点を自由に動かし、迷路を自動生成しながら、探索が層ごとに広がっていく様子をステップ単位で観察できます。ブラウザだけですぐに動きます。

ツールを開く

深さ優先探索(DFS)ビジュアライザー

グリッド上でインタラクティブに深さ優先探索を体験。壁を描いたり、スタート/ゴール地点を動かしたり、迷路を生成したり、探索の様子をステップごとに確認できます。ブラウザ上ですぐに動作します。

ツールを開く

ダイクストラ法ビジュアライザー

グリッド上でダイクストラ法による経路探索を可視化。壁を描き、始点・終点を動かし、迷路を生成し、探索の進行をステップごとに確認できます。すべてブラウザ上で動作します。

ツールを開く

迷路ジェネレーター

再帰分割法(recursive division)によるアニメーション付き迷路ジェネレーター — 壁が組み上がっていく過程をステップごとに確認し、速度を調整して、新しい迷路を何度でも生成できます。経路探索アルゴリズムのビジュアライザーと組み合わせて使うのに最適です。すべてブラウザ上で完結します。

ツールを開く

BFS vs DFS

再帰分割アルゴリズムはどのように迷路を作るのですか?

まず何もない空間から始め、各区画をランダムな位置に隙間を残した1本の直線の壁で再帰的に仕切っていきます。これを区画がそれ以上分割できなくなるまで繰り返します。

「完全な迷路」とは何ですか?

任意の2マス間にちょうどひとつの経路しか存在しない迷路のことです——ループも孤立した領域もありません。再帰分割アルゴリズムは常に完全な迷路を生成します。

この迷路を解くことはできますか?

はい——同じ方眼グリッドを使うBFS、Dijkstra、A*のビジュアライザーにレイアウトをコピーすれば、経路探索アルゴリズムがどのように迷路を進んでいくか確認できます。

他にどんな迷路生成アルゴリズムがありますか?

Recursive backtracker(ランダム化DFS)、Prim法、Kruskal法、Wilson法、Eller法などがあり、それぞれ見た目の異なる構造の迷路が生成されます。