- Notifications
You must be signed in to change notification settings - Fork 366
/
Copy pathfloyd_warshal.py
37 lines (27 loc) · 824 Bytes
/
floyd_warshal.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# Floyd Warshall Algorithm in python
# The number of vertices
nV=4
INF=999
# Algorithm implementation
deffloyd_warshall(G):
distance=list(map(lambdai: list(map(lambdaj: j, i)), G))
# Adding vertices individually
forkinrange(nV):
foriinrange(nV):
forjinrange(nV):
distance[i][j] =min(distance[i][j], distance[i][k] +distance[k][j])
print_solution(distance)
# Printing the solution
defprint_solution(distance):
foriinrange(nV):
forjinrange(nV):
if(distance[i][j] ==INF):
print("INF", end=" ")
else:
print(distance[i][j], end=" ")
print(" ")
G= [[0, 3, INF, 5],
[2, 0, INF, 4],
[INF, 1, 0, INF],
[INF, INF, 2, 0]]
floyd_warshall(G)