Floyd-Warshall para todos los pares
Encuentre caminos mínimos entre cada par
Floyd-Warshall para todos los pares es una lección gratuita de Coding Interview Prep en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Coding Interview Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Coding Interview Prep incluye 4 lecciones en total.
Todos los pares a la vez
A veces necesita el camino más corto entre cada par de nodos, no solo desde un origen. Ese es el problema de todos los pares.
Conozca Floyd-Warshall
Floyd-Warshall completa una tabla de distancias para todos los pares mediante tres bucles anidados y ordenados, con muy poca configuración.
La matriz de distancias
Use una matriz donde dist[i][j] sea el menor costo conocido de i a j. Inicialícela con las aristas directas proporcionadas.
dist = [[INF] * n for _ in range(n)]Establezca la diagonal
Cada nodo puede llegar a sí mismo de forma gratuita, así que establezca en cero la diagonal dist[i][i] antes de comenzar a relajar.
for i in range(n):
dist[i][i] = 0La idea del nodo intermedio
El truco consiste en permitir que los caminos pasen por un nodo intermedio k y comprobar si pasar por k es más barato que ir directamente.
El orden de los bucles importa
El bucle externo es k, el punto intermedio elegido. Los bucles internos i y j prueban cada par con respecto a ese punto intermedio.
for k in range(n):
for i in range(n):
for j in range(n):El paso de relajación
Para cada par, relaje pasando por k: si ir de i a k y luego a j es más corto, actualice dist[i][j] con ese costo combinado.
if dist[i][k] + dist[k][j] < dist[i][j]:
dist[i][j] = dist[i][k] + dist[k][j]Por qué k va fuera
Cuando termina k, todos los pares pueden usar nodos intermedios hasta k. Colocar k en el bucle externo mantiene correcta esa garantía.
Las aristas negativas no son un problema
Floyd-Warshall admite aristas negativas, pero no ciclos negativos. Un ciclo negativo deja alguna entrada de la diagonal por debajo de cero.
El tiempo de ejecución
Tres bucles sobre n nodos producen un tiempo de O(n^3) y un espacio de O(n^2), algo práctico solo cuando n se mantiene en unos pocos cientos.
Cuándo elegirlo
Elija Floyd-Warshall cuando el grafo sea pequeño y denso y realmente necesite la distancia entre cada par, no solo desde un único origen.
Comprobación rápida
¿Qué bucle debe ser el externo en Floyd-Warshall?
Repaso: Floyd-Warshall
Inicialice una matriz, establezca la diagonal en cero y luego recorra k, i, j para relajar pasando por k. Caminos más cortos entre todos los pares en O(n^3). 🧮
Aprende Coding Interview Prep con un tutor de IA — gratis
Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.
- Cursos
- 90
- Lecciones
- 360
Preguntas frecuentes
¿La lección «Floyd-Warshall para todos los pares» es gratis?
Sí — el texto completo de «Floyd-Warshall para todos los pares» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Coding Interview Prep, actualiza a CoddyKit PRO. El curso de Coding Interview Prep incluye 4 lecciones en total.
¿Qué aprenderé en «Floyd-Warshall para todos los pares»?
Encuentre caminos mínimos entre cada par Practicas Coding Interview Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Coding Interview Prep?
No se requiere experiencia previa. Coding Interview Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «Floyd-Warshall para todos los pares»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Coding Interview Prep?
Sí. Cada lección de Coding Interview Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Dijkstra con un heap
- BFS 0-1 con una deque
- Bellman-Ford y aristas negativas
- Floyd-Warshall para todos los pares