Add new course
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
from sys import maxsize
|
||||
from graph import Graph
|
||||
|
||||
|
||||
def floyd(graph: Graph):
|
||||
distance = graph.matrix
|
||||
for x in range(graph.V):
|
||||
for y in range(graph.V):
|
||||
if x != y and distance[x][y] == 0:
|
||||
distance[x][y] = maxsize
|
||||
for k in range(graph.V):
|
||||
for i in range(graph.V):
|
||||
for j in range(graph.V):
|
||||
distance[i][j] = min(
|
||||
distance[i][j], distance[i][k] + distance[k][j])
|
||||
for x in range(graph.V):
|
||||
for y in range(graph.V):
|
||||
if x != y and distance[x][y] == maxsize:
|
||||
distance[x][y] = 0
|
||||
return distance
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
matrix = [
|
||||
# 0 1 2 3 4 5
|
||||
[0, 0, 7, 0, 9, 0], # 0
|
||||
[0, 0, 0, 0, 0, 0], # 1
|
||||
[0, 5, 0, 1, 0, 2], # 2
|
||||
[6, 0, 0, 0, 0, 2], # 3
|
||||
[0, 0, 0, 0, 0, 1], # 4
|
||||
[0, 6, 0, 0, 0, 0] # 5
|
||||
]
|
||||
graph = Graph(matrix)
|
||||
D = floyd(graph)
|
||||
for i in range(6):
|
||||
for j in range(6):
|
||||
print(f"{D[i][j]:2d}", end=" ")
|
||||
print()
|
||||
# 0 12 7 8 9 9
|
||||
# 0 0 0 0 0 0
|
||||
# 7 5 0 1 16 2
|
||||
# 6 8 13 0 15 2
|
||||
# 0 7 0 0 0 1
|
||||
# 0 6 0 0 0 0
|
||||
Reference in New Issue
Block a user