Floyd Warshall Algorithm Algorithm
- Initialize the solution matrix same as the input graph matrix as a first step.
- Then update the solution matrix by considering all vertices as an intermediate vertex.
- The idea is to pick all vertices one by one and updates all shortest paths which include the picked vertex as an intermediate vertex in the shortest path.
- When we pick vertex number k as an intermediate vertex, we already have considered vertices {0, 1, 2, .. k-1} as intermediate vertices.
- For every pair (i, j) of the source and destination vertices respectively, there are two possible cases.
- k is not an intermediate vertex in shortest path from i to j. We keep the value of dist[i][j] as it is.
- k is an intermediate vertex in shortest path from i to j. We update the value of dist[i][j] as dist[i][k] + dist[k][j], if dist[i][j] > dist[i][k] + dist[k][j]
Floyd Warshall Algorithm
The Floyd-Warshall algorithm, named after its creators Robert Floyd and Stephen Warshall, is a fundamental algorithm in computer science and graph theory. It is used to find the shortest paths between all pairs of nodes in a weighted graph. This algorithm is highly efficient and can handle graphs with both positive and negative edge weights, making it a versatile tool for solving a wide range of network and connectivity problems.
Table of Content
- Floyd Warshall Algorithm
- Idea Behind Floyd Warshall Algorithm
- Floyd Warshall Algorithm Algorithm
- Pseudo-Code of Floyd Warshall Algorithm
- Illustration of Floyd Warshall Algorithm
- Complexity Analysis of Floyd Warshall Algorithm
- Why Floyd-Warshall Algorithm better for Dense Graphs and not for Sparse Graphs?
- Important Interview questions related to Floyd-Warshall
- Real World Applications of Floyd-Warshall Algorithm