Ctrl/Cmd + P and select "Save as PDF".
if d[v] > d[u] + w(u, v) d[v] = d[u] + w(u, v) pi[v] = u
Init-Single-Source(G, s) // d[s]=0, others inf
S = empty
Q = V // Min-Priority Queue keyed by d[]
while Q not empty
u = Extract-Min(Q)
S = S U {u}
for each v in Adj[u]
Relax(u, v, w)| Implementation | Extract-Min | Decrease-Key | Total |
|---|---|---|---|
| Array | $O(V)$ | $O(1)$ | $O(V^2)$ |
| Binary Heap | $O(\log V)$ | $O(\log V)$ | $O(E \log V)$ |
| Fibonacci Heap | $O(\log V)$ amortized | $O(1)$ amortized | $O(V \log V + E)$ |