You are on page 1of 19

Dijkstra’s Algorithm

Text
• Read Weiss, § 9.3
Dijkstra’s Algorithm
• Shortest Path Algorithm
Requirements
• Works with directed and undirected graphs
• Rare type of algorithm
A greedy algorithm that produces an
optimal solution
Walk-Through
2
Initialize array
3
5 F C K dv pv
10
A 7
4
3 A F  
8
18 B F  
4
9
B D C F  
10
H 9 25
D F  
2
3 E F  
G 7
E F F  
G F  
H F  
2
Start with G
3
5 F C K dv pv
10
A 7
4
3 A
8
18 B
4
9
B D C
10
H 9 25
D
2
3 E
G 7
E F
G T 0 
H
2
Update unselected nodes
3
5 F C K dv pv
10
A 7
4
3 A
8
18 B
4
9
B D C
10
H 9 25
D 2 G
2
3 E
G 7
E F
G T 0 
H 3 G
2
Select minimum distance
3
5 F C K dv pv
10
A 7
4
3 A
8
18 B
4
9
B D C
10
H 9 25
D T 2 G
2
3 E
G 7
E F
G T 0 
H 3 G
2
Update unselected nodes
3
5 F C K dv pv
10
A 7
4
3 A
8
18 B
4
9
B D C
10
H 9 25
D T 2 G
2
3 E 27 D
G 7
E F 20 D
G T 0 
H 3 G
2
Select minimum distance
3
5 F C K dv pv
10
A 7
4
3 A
8
18 B
4
9
B D C
10
H 9 25
D T 2 G
2
3 E 27 D
G 7
E F 20 D
G T 0 
H T 3 G
2
Update unselected nodes
3
5 F C K dv pv
10
A 7
4
3 A 7 H
8
18 B 12 H
4
9
B D C
10
H 9 25
D T 2 G
2
3 E 27 D
G 7
E F 20 D
G T 0 
H T 3 G
2
Select minimum distance
3
5 F C K dv pv
10
A 7
4
3 A T 7 H
8
18 B 12 H
4
9
B D C
10
H 9 25
D T 2 G
2
3 E 27 D
G 7
E F 20 D
G T 0 
H T 3 G
2
Update unselected nodes
3
5 F C K dv pv
10
A 7
4
3 A T 7 H
8
18 B 12 H
4
9
B D C
10
H 9 25
D T 2 G
2
3 E 27 D
G 7
E F 17 A
G T 0 
H T 3 G
2
Select minimum distance
3
5 F C K dv pv
10
A 7
4
3 A T 7 H
8
18 B T 12 H
4
9
B D C
10
H 9 25
D T 2 G
2
3 E 27 D
G 7
E F 17 A
G T 0 
H T 3 G
2
Update unselected nodes
3
5 F C K dv pv
10
A 7
4
3 A T 7 H
8
18 B T 12 H
4
9
B D C 16 B
10
H 9 25
D T 2 G
2
3 E 22 B
G 7
E F 17 A
G T 0 
H T 3 G
2
Select minimum distance
3
5 F C K dv pv
10
A 7
4
3 A T 7 H
8
18 B T 12 H
4
9
B D C T 16 B
10
H 9 25
D T 2 G
2
3 E 22 B
G 7
E F 17 A
G T 0 
H T 3 G
2
Update unselected nodes
3
5 F C K dv pv
10
A 7
4
3 A T 7 H
8
18 B T 12 H
4
9
B D C T 16 B
10
H 9 25
D T 2 G
2
3 E 22 B
G 7
E F 17 A
G T 0 
H T 3 G
2
Select minimum distance
3
5 F C K dv pv
10
A 7
4
3 A T 7 H
8
18 B T 12 H
4
9
B D C T 16 B
10
H 9 25
D T 2 G
2
3 E 22 B
G 7
E F T 17 A
G T 0 
H T 3 G
2
Update unselected nodes
3
5 F C K dv pv
10
A 7
4
A T 7 H
8
18 B T 12 H
4
9
B D C T 16 B
10
H 9 25
D T 2 G
2
3 E 19 F
G 7
E F T 17 A
G T 0 
H T 3 G
2
Select minimum distance
3
5 F C K dv pv
10
A 7
4
A T 7 H
8
18 B T 12 H
4
9
B D C T 16 B
10
H 9 25
D T 2 G
2
3 E T 19 F
G 7
E F T 17 A
G T 0 
H T 3 G

Done
Order of Complexity
• Analysis
– findMin() takes O(V) time
– outer loop iterates (V-1) times
 O(V2) time
• Optimal for dense graphs, i.e., |E| = O(V2)
• Suboptimal for sparse graphs, i.e., |E| =
O(V)

You might also like