FLOYD WARSHALL

It's me, Hyeseung·2022년 9월 30일
0

Algorithm

목록 보기
5/8
  • Djikstra — 음수 불가능(시작점이 정해졌을 경우)
  • bellmanford — 음수가능
  • floyd warshell — 음수가능 (시작점이 정해져있지 않아서 모든 경우를 탐색해야 할 경우)

if arr[][] > arr[][] + arr[][]
	arr[][] = arr[][] + arr[][]

inf = int(21e8)
arr = [[0,5,inf,8],
       [7,0,9,inf],
       [2,inf,0,4],
       [inf,inf,3,0]
       ]
for k in range(4):  # k는 경유지
    for i in range(4): # i는 시작점
        for j in range(4): # j는 도착점
            if arr[i][j] > arr[i][k] + arr[k][j]:
                arr[i][j] = arr[i][k] + arr[k][j]

for m in range(4):
    for n in range(4):
        print(arr[m][n],end = ' ')
    print()

0개의 댓글