Skip to content

Commit 02274e0

Browse files
committed
Floyd warshall algorithm for python added
1 parent e1de561 commit 02274e0

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

Dynamic Programming/Floyd_warshall.py

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
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)

0 commit comments

Comments
 (0)