Floyd-Warshall Algorithm is an algorithm for finding the shortest paths between all pairs of vertices in a weighted graph.
Steps:
Initialize the distance matrix with the direct edge weights between all pairs of vertices.
Update the matrix by considering each vertex as an intermediate vertex.
Repeat for all pairs of vertices and for every intermediate vertex.
Time Complexity:
O(V^3), where V is the number of vertices.
def floyd_warshall(graph, V): dist = [[float('inf')] * V for _ in range(V)] for i in range(V): dist[i][i] = 0 for u, v, w in graph: dist[u][v] = w for k in range(V): for i in range(V): for j in range(V): if dist[i][j] > dist[i][k] + dist[k][j]: dist[i][j] = dist[i][k] + dist[k][j] return dist# Example usagegraph = [(0, 1, 5), (0, 2, 10), (1, 2, 3)]V = 3print("Shortest distance matrix:", floyd_warshall(graph, V))