Dijkstra vs A*
Dijkstra vs A* compared — heuristics, speed, optimality and use cases, with interactive pathfinding visualizers.
Dijkstra finds shortest paths from a source to every node; A* adds a heuristic that aims at a single goal, exploring far fewer nodes. A* with a good heuristic is Dijkstra, only smarter about direction.
Dijkstra vs A* at a glance
| Dijkstra | A* | |
|---|---|---|
| Heuristic | None | Yes (estimate to goal) |
| Target | All nodes | One goal |
| Nodes explored | More | Fewer |
| Optimal | Yes | Yes (admissible heuristic) |
When to use Dijkstra
Use Dijkstra for shortest paths to all nodes or when no good heuristic exists.
When to use A*
Use A* for point-to-point pathfinding where you can estimate distance to the goal.
Tools for Dijkstra & A*
Visualizador del algoritmo de Dijkstra
Visualiza la búsqueda de caminos de Dijkstra sobre una cuadrícula de celdas — dibuja muros, mueve el punto de inicio y destino, genera laberintos y ejecuta la búsqueda paso a paso. Funciona directamente en el navegador.
Abrir herramientaVisualizador del algoritmo de búsqueda de caminos A*
Búsqueda de caminos A* interactiva sobre una cuadrícula, con heurística de distancia Manhattan — dibuja muros, mueve el punto de inicio/destino, genera laberintos y ejecuta la búsqueda paso a paso. Funciona íntegramente en el navegador.
Abrir herramientaVisualizador de Búsqueda en Anchura (BFS)
Búsqueda en anchura interactiva sobre una cuadrícula de celdas — dibuja muros, mueve el punto de inicio/destino, genera laberintos y observa la expansión paso a paso por capas. Funciona directamente en tu navegador.
Abrir herramientaGenerador de laberintos
Generador de laberintos animado con el algoritmo de división recursiva (recursive division) — observa paso a paso cómo se levantan las paredes, ajusta la velocidad y crea nuevos laberintos. Combina muy bien con los visualizadores de algoritmos de búsqueda de rutas. Funciona por completo en el navegador.
Abrir herramientaDijkstra vs A*
¿Cómo genera un laberinto el algoritmo de división recursiva?
Parte de un área vacía y luego divide recursivamente cada cámara con una pared recta que tiene un hueco aleatorio, repitiendo el proceso hasta que las cámaras son demasiado pequeñas para seguir dividiéndolas.
¿Qué es un laberinto "perfecto"?
Un laberinto en el que existe exactamente un único camino entre dos celdas cualesquiera, sin bucles ni zonas aisladas. El algoritmo de división recursiva siempre genera laberintos perfectos.
¿Puedo resolver este laberinto?
Sí — copia el diseño en los visualizadores de BFS, Dijkstra o A* (que comparten la misma cuadrícula) para ver cómo un algoritmo de búsqueda de rutas lo recorre.
¿Qué otros algoritmos de generación de laberintos existen?
Recursive backtracker (DFS aleatorizado), Prim's, Kruskal's, Wilson's y Eller's: cada uno produce laberintos con una textura visual diferente.