Visualizador BFS vs DFS

Veja como BFS e DFS exploram o mesmo grafo de formas diferentes. BFS avança em largura, DFS avança em profundidade.

A carregar a simulação interativa...

Topological Traversal and Complexity Bounds 🖖

Graph traversal algorithms are strictly defined by their data structure dependencies: queues for Breadth-First Search (BFS) and stacks for Depth-First Search (DFS). BFS expands radially, mathematically guaranteeing the shortest unweighted path, whereas DFS probes maximal depth before recursive backtracking. The time complexity for both remains strictly bounded by O(V + E). These deterministic traversal protocols dictate the computational efficiency of network analysis.

O mesmo mapa, dois estilos de viagem 🖖

Ao executá-las lado a lado, algo salta à vista: elas visitam exatamente os mesmos nós e arestas, apenas em ordem diferente. A busca em largura (BFS) explora toda a vizinhança atual antes de avançar, por isso precisa lembrar de cada nó à espera na fronteira. A busca em profundidade (DFS) compromete-se com um ramo e só acompanha o caminho atual. A conclusão prática: use BFS quando a resposta provavelmente estiver perto e DFS quando o grafo for profundo e você quiser gastar pouca memória.

Ambos os algoritmos nasceram em labirintos 🖖

Muito antes dos computadores, a DFS já existia como uma regra para percorrer labirintos, publicada pelo matemático francês Charles Pierre Trémaux no século XIX. A BFS chegou bem depois: Edward F. Moore a reinventou em um artigo de 1959 intitulado literalmente The Shortest Path Through a Maze, e Konrad Zuse já a havia esboçado em 1945. Dois pilares da ciência da computação, ambos concebidos originalmente apenas para escapar de um labirinto.

Problemas de exemplo