Slides09 - Dijkstra
Slides09 - Dijkstra
1
a c
2
3 1
S 1 1 e f
4
b d
1
Dijkstra’s Algorithm
Repeatedly find shortest path to any node v ∉ S that
remains in S until the final edge e = (u, v)
Minimize:
d’(v) = min { d(u) + le : u ∈ S, e = (u, v) ∈ E }
1
a c
2
3 1
S 1 1 e f
4
b d
1
Dijkstra’s Algorithm
Node d()
1
a c
2
1 3 1 e 1 f
4
b d
1
Dijkstra’s Algorithm
Node d()
a
1
c
2
a 0
1 3 1 e 1 f
4
b d
1
Dijkstra’s Algorithm
Node d()
a
1
c
2
a 0
1 3 1 e 1 f b 1
4
b d
1
Dijkstra’s Algorithm
Node d()
a
1
c
2
a 0
1 3 1 e 1 f b 1
4 c 1
b d
1
Dijkstra’s Algorithm
Node d()
a
1
c
2
a 0
1 3 1 e 1 f b 1
4 c 1
b d
1 d 2
Dijkstra’s Algorithm
Node d()
a
1
c
2
a 0
1 3 1 e 1 f b 1
4 c 1
b d
1 d 2
e 3
Dijkstra’s Algorithm
Node d()
a
1
c
2
a 0
1 3 1 e 1 f b 1
4 c 1
b d
1 d 2
e 3
f 4
Example
Data structure?
Running Time