File tree 1 file changed +34
-0
lines changed
1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change
1
+ # Floyd Warshall Algorithm in Python
2
+ # https://en.wikipedia.org/wiki/Floyd%E2%80%93Warshall_algorithm
3
+
4
+ nV = 4 # The number of vertices
5
+
6
+ INF = 999
7
+
8
+
9
+ # Algorithm implementation
10
+ def floyd_warshall (G ):
11
+ distance = list (map (lambda i : list (map (lambda j : j , i )), G ))
12
+
13
+ # Adding vertices individually
14
+ for k in range (nV ):
15
+ for i in range (nV ):
16
+ for j in range (nV ):
17
+ distance [i ][j ] = min (distance [i ][j ], distance [i ][k ] + distance [k ][j ])
18
+ print_solution (distance )
19
+
20
+ def print_solution (distance ):
21
+ for i in range (nV ):
22
+ for j in range (nV ):
23
+ if (distance [i ][j ] == INF ):
24
+ print ("INF" , end = " " )
25
+ else :
26
+ print (distance [i ][j ], end = " " )
27
+ print (" " )
28
+
29
+
30
+ G = [[0 , 3 , INF , 5 ],
31
+ [2 , 0 , INF , 4 ],
32
+ [INF , 1 , 0 , INF ],
33
+ [INF , INF , 2 , 0 ]]
34
+ floyd_warshall (G )
You can’t perform that action at this time.
0 commit comments