Saltar al contenido principal
Interactive Algorithm Education

Visualize & Master Algorithms & Data Structures

Explore classic & modern sorting algorithms, efficient searching techniques, and interactive data structure visualizations — all with real-time step-by-step animation, comparisons, swaps, and Big-O metrics.

Graph Algorithms Visualizer

BFS — Breadth-First Search

Time O(V + E) · Space O(V)
Paso 0 / 0
Speed 100ms
Step Progress 0 / 0
Visited 0
Frontier 0
Status Ready
Unvisited
Start
Active
Visited
MST / SPT
Rejected
SCC component

Queue

Step Explanation

Select an algorithm and press Play to begin.

Pseudocode
 

Búsqueda en Anchura (BFS)

Elementary (2/5) ~45 minutos Nivel por nivel Cola FIFO Caminos más cortos en grafos no ponderados Vecindario expansivo Prereqs: Grafos 101, Estructura de datos cola
Quick Reference

Breadth-First Search

BFS is a graph traversal algorithm that explores all vertices reachable from a source, visiting neighbors level by level using a FIFO queue.

Difficulty: Elementary (2/5) graph

Complexity

Best Time
O(V + E)
Average Time
O(V + E)
Worst Time
O(V + E)
Space
O(V)

When to Use

Use BFS when you need the shortest path in an unweighted graph, level-order traversal, or connectivity checks.

Pros

  • Guarantees shortest path in unweighted graphs
  • Systematic level-by-level exploration
  • O(V+E) time complexity

Cons

  • Requires O(V) memory for the queue
  • Not suitable for weighted shortest paths
  • May explore many irrelevant nodes for deep targets

History

BFS was invented in the 1950s by Edward F. Moore as part of his work on maze-solving algorithms.

Búsqueda en Anchura (BFS) explora un grafo capa por capa desde un nodo fuente, como una onda que se expande en el agua. Es el algoritmo de referencia para “¿qué tan lejos está todo desde aquí?” en grafos no ponderados.

Funciona manteniendo una cola FIFO de vecinos pendientes: primero en llegar, primero en salir. Eso garantiza que siempre visitas todos los nodos en la distancia d antes de tocar cualquier nodo en la distancia d+1.

Cómo Funciona

  1. Inicializa: coloca la fuente en una cola, márcala como visitada.
  2. Saca el frente de la cola; ese es el nodo actual.
  3. Visita a cada vecino no visitado: márcalo, registra su padre/distancia, y mételo en la cola.
  4. Repite hasta que la cola esté vacía.

Idea Clave

La cola es la garantía: al procesar nodos en orden de llegada, BFS naturalmente descubre el camino más corto en número de aristas desde la fuente. Si llegas a un nodo por primera vez, esa trayectoria no puede ser superada porque cualquier ruta alternativa pasaría por más nodos intermedios.

Ejemplo Trabajado

Fuente S en el visualizador:

RondaFrente de colaVecinos añadidosDistancia
1SA, BS=0
2AC, DA=1
3BEB=1
4CFC=2
5D—D=2
6EGE=2
7F—F=3
8G—G=3

Resultado: distancias por niveles S=0, A=B=1, C=D=E=2, F=G=3. Observa el visualizador expandir el grafo en ondas concéntricas.

Casos Extremos y Trampas

  • Grafos con ciclos — el conjunto de visitados previene bucles infinitos.
  • Grafos desconectados — los nodos inalcanzables nunca se encolan; reporta ∞.
  • Grafos muy ramificados — la cola puede crecer hasta O(V) en el peor caso.
  • Grafos ponderados — BFS no garantiza caminos más cortos cuando las aristas tienen peso; usa Dijkstra.

Comparación con DFS

AspectoBFSDFS
EstructuraCola (FIFO)Pila (LIFO / recursión)
Camino más cortoSí (no ponderado)No
Uso de memoriaO(V) en peor casoO(h) donde h es la altura
Natural paraCaminos mínimos, nivelesBacktracking, ciclos, topológico

Aplicaciones

  • Redes sociales — grados de separación, amigos de amigos
  • Enrutamiento — saltos mínimos en redes no ponderadas
  • IA / juegos — expansión de nodos en grid (p. ej., pathfinding 4-direcciones)
  • Verificación de bipartitos — coloreo por niveles detecta aristas intra-nivel

Trayectoria de Práctica

  1. Ejecuta BFS a mano desde S en el grafo del visualizador, registrando la cola después de cada extracción.
  2. Explica por qué BFS encuentra el camino más corto en número de aristas, pero no necesariamente en peso.
  3. Marca cada nodo con su nivel y argumenta por qué dos nodos del mismo nivel nunca pueden ser adyacentes en un grafo bipartito.
  4. Extiende BFS para reconstruir el camino real desde S hasta cualquier nodo usando punteros padre.