둘 다 가중 그래프에서 출발점으로부터의 최단 경로를 찾습니다. Dijkstra는 더 빠르지만 음이 아닌 가중치가 필요하고, Bellman-Ford는 더 느리지만 음수 간선을 처리하고 음수 사이클을 탐지합니다.
Dijkstra (greedy + min-heap)
방문하지 않은 가장 가까운 노드를 반복적으로 확장하고 그 이웃을 relax(완화)합니다.
python
heapq
():
dist = {n: () n graph}
dist[src] =
pq = [(, src)]
pq:
d, u = heapq.heappop(pq)
d > dist[u]:
v, w graph[u]:
d + w < dist[v]:
dist[v] = d + w
heapq.heappush(pq, (dist[v], v))
dist
