from typing import*import numpy as np
deffloyd(matrix:List[List[int]])->None:
length =len(matrix)
path =[[-1]*length for _ inrange(length)]for k inrange(length):for i inrange(length):for j inrange(length):if matrix[i][j]> matrix[i][k]+ matrix[k][j]:
matrix[i][j]= matrix[i][k]+ matrix[k][j]
path[i][j]= k+1print(np.array(matrix))print(np.array(path))
matrix =[[0,9,float("inf"),1],[9,0,3,float("inf")],[float("inf"),3,0,2],[1,float("inf"),2,0]]
floyd(matrix)
floyd
from typing import*import numpy as np
defDijkstra(matrix:List[List[int]])->None:
length =len(matrix)
dis =[a for a in matrix[0]]
v =[1]*length
v[0]=0for i inrange(length):
minValue=float("inf")
k =0for j inrange(length):if v[j]and dis[j]< minValue:
minValue = dis[j]
k = j
v[k]=0for z inrange(length):if v[z]and dis[z]> minValue + matrix[k][z]:
dis[z]= minValue + matrix[k][z]print(dis)
matrix =[[0,9,float("inf"),1],[9,0,3,float("inf")],[float("inf"),3,0,2],[1,float("inf"),2,0]]
Dijkstra(matrix)