weighted directed graph
2
1
3
4
shortest dist from 2
| node | dist | done |
|---|---|---|
| 1 | ∞ | |
| 2 | ∞ | |
| 3 | ∞ | |
| 4 | ∞ |
priority queue (min d)
(empty)
Dijkstra's algorithm
▸1given graph, source2dist[source] = 0, rest = ∞; pq = {(0, source)}3while pq not empty:4 (d, u) = pop min5 if u already done: skip6 mark u done7 for (u → v, w):8 if d + w < dist[v]: dist[v] = d+w; push9answer = max(dist) // −1 if any unreachable
state
- source2
- n4