Visualizador BFS vs DFS
Observa cómo BFS y DFS exploran el mismo grafo de forma diferente. BFS avanza en anchura, DFS avanza en profundidad.
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.
El mismo mapa, dos formas de viajar 🖖
Al ejecutarlas en paralelo se nota algo: visitan exactamente los mismos nodos y aristas, solo que en distinto orden. La búsqueda en anchura (BFS) explora todo el vecindario actual antes de avanzar, por lo que debe recordar cada nodo que espera en la frontera. La búsqueda en profundidad (DFS) se compromete con una rama y solo sigue el camino actual. La conclusión práctica: usa BFS cuando la respuesta esté probablemente cerca y DFS cuando el grafo sea profundo y quieras gastar poca memoria.
Ambos algoritmos nacieron en laberintos 🖖
Mucho antes de los ordenadores, la DFS ya existía como una regla para recorrer laberintos, publicada por el matemático francés Charles Pierre Trémaux en el siglo XIX. La BFS llegó mucho después: Edward F. Moore la reinventó en un artículo de 1959 titulado literalmente The Shortest Path Through a Maze, y Konrad Zuse ya la había esbozado en 1945. Dos pilares de la informática, ambos ideados originalmente solo para salir de un laberinto.
Problemas de ejemplo
- Cuadrícula 4x4 - Cuadrícula 4×4: BFS explora capa por capa
- Pasillo de laberinto - Corredor de laberinto
- Grafo en estrella - Grafo estrella
- Cadena larga - Cadena larga
- Árbol binario - Árbol binario: DFS profundiza antes de expandirse en anchura
- Desconectado - Grafo desconectado: nodos inalcanzables
- Grafo denso - Grafo denso: muchas aristas, órdenes similares