Pseudo Code
Coddy의 벨만-포드 알고리즘 - 그래프 알고리즘 코스 레슨 — 9개 중 4번째.
bellmanFord(n, edges, source):
dist = [INF, INF, ...]; dist[source] = 0
repeat (n - 1) times:
for each edge (u -> v, weight w):
if dist[u] != INF and dist[u] + w < dist[v]:
dist[v] = dist[u] + w
replace every remaining INF with -1
return dist
// 음수 사이클: n-1번의 패스 후에, 만약 어떤 간선이 여전히 완화(relax)된다면,
// 음수 사이클이 존재합니다.- 가드 조건인
dist[u] != INF는 도달할 수 없는 정점으로부터 경로가 생성되는 것을 방지합니다. - 전체 간선 리스트를 완화하는 것이 하나의 패스(pass)입니다. 벨만-포드 알고리즘은 이 패스를
n - 1번 반복하는 것입니다.
직접 해보기
이 레슨에는 코드 챌린지가 없습니다.
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
벨만-포드 알고리즘 - 그래프 알고리즘의 모든 레슨
2The Algorithm
How it works?Pseudo CodeImplementation (Part 1)Implementation (Part 2)