Floyd Warshall algorithm

What is warshall algorithm? 

import sys

INF=sys.maxsize

def warshall(graph):

n = len(graph)

dist = [[] for i in range(n)] #to store result

for i in range(0,n):

for j in range(0,n):

dist[i].append(graph[i][j])


for i in range(n):

for j in range(n):

for k in range(n):

dist[i][j] = min(dist[i][j],dist[i][k]+dist[k][j])


print('Shortest Distance between every pair of vertex:-')

for i in range(n):

for j in range(n):

if dist[i][j]==INF:

print ("%7s" % ("INF"),end='\t')

else:

print ("%7s" % (dist[i][j]),end='\t')

print()

graph = [[0,5,INF,10],[INF,0,3,INF],[INF,INF,0,1],[INF,INF,INF,0]]

warshall(graph)

import sys

INF=sys.maxsize

graph = [[0,5,INF,10],[INF,0,3,INF],[INF,INF,0,1],[INF,INF,INF,0]]

def warshall(graph):

n = len(graph)

dist = [[] for i in range(n)] #to store result

for i in range(0,n):

for j in range(0,n):

dist[i].append(graph[i][j])


for i in range(n):

for j in range(n):

for k in range(n):

dist[i][j] = min(dist[i][j],dist[i][k]+dist[k][j])

print('Shortest Distance between every pair of vertex:-')

for i in range(n):

for j in range(n):

if dist[i][j]==INF:

print ("%7s" % ("INF"),end='\t')

else:

print ("%7s" % (dist[i][j]),end='\t')

print()


print("original Graph is ")

n= len(graph)

for i in range(n):

for j in range(n):

if graph[i][j]==INF:

print ("%7s" % ("INF"),end='\t')

else:

print ("%7s" % (graph[i][j]),end='\t')

print()

 

warshall(graph)