Floyd Warshall algorithm is used to find the shortest ath from any vertex to any other vertex in a weighted graph.
- Create a 2D array
matrix
of n * n , where n is the number of vertices in the weighted graph - Initialize the 2D array
matrix[i][i] = 0
and all other cells asmatrix[i][j] = Integer.MAX_VALUE (some higher value)
- Loop over the 2D array n times, k = 0 to less than n, and update the matrix[i][j] as below
for(int k = 0; k < N; k++)
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
matrix[i][j] = Math.min(matrix[i][j], matrix[i][k] + matrix[k][j]);
- At the end we will have the shorted path from any vertex i to any vertex j in the matrix.