이 알고리즘은 일 대 다 최단 거리를 알 수 있는 알고리즘이다.
n - 2 번의 라운드 동안 모든 엣지들을 확인하면서 릴랙스를 한다면.
시작점으로 부터 모든 점에 대한 최단 거리가 업데이트 된다.
var dist = Array(repeating: Int.max, count: n)
var predecessor = Array(repeating: nil, count : n)
for i in 0..<n-1 {
for edge in edges {
let a = edge[0]
let b = edge[1]
let w = edge[2]
if dist[b] > dist[a] + w { // relax
dist = dist[a] + w
predecessor[b] = a
}
}
}