10a MST Prim
10a MST Prim
4 A 7
3
B 5 6 C
D
2
9
8 12
E F
14
Example - 1
A
4 7
3
B 5 6
D C
2 8 9
12
E 14 F
A B C D E F
999 999 999 999 999 999
Distance Array
-1 -1 -1 -1 -1 -1 Visited Array
MST Array
Example - 2
A Source Vertex for MST, A
4 7
3 Initialize Distance of A to 0
B 5 6
D C
2 8 9
12
E 14 F
A B C D E F
0 999 999 999 999 999
Distance Array
-1 -1 -1 -1 -1 -1 Visited Array
MST Array
Example - 3
A Source Vertex for MST, A
4 7
3 Mark A as Visited
B 5 6 Adjacent Nodes of A: B, C, D
D C
A B C D E F
0 4 7 3 999 999
Distance Array
1 -1 -1 -1 -1 -1 Visited Array
AB AC AD MST Array
Example - 4
A Source Vertex for MST, A
4 7
3 Node with min. distance: D
B 5 6 Mark D as Visited
D C
A B C D E F
0 4 7 3 999 999
Distance Array
1 -1 -1 1 -1 -1 Visited Array
AB AC AD MST Array
Example - 5
A Current Vertex: D
4 7
3 Distance of B from D: 5
B 5 6 Previous Distance of B: 4
D C
2 No change in Distance of B, no
8 9
12 change in MST
E 14 F
A B C D E F
0 4 7 3 999 999
Distance Array
1 -1 -1 1 -1 -1 Visited Array
AB AC AD MST Array
Example - 6
A Current Vertex: D
4 7
3 Distance of C from D: 6
B 5 6 Previous Distance of C: 7
D C
A B C D E F
0 4 6 3 999 999
Distance Array
1 -1 -1 1 -1 -1 Visited Array
AB DC AD MST Array
Example - 7
A Current Vertex: D
4 7
3 Prev. Distance of E & F = INF
B 5 6 Update Distance of E & F from D
D C
2 Update MST
8 9
12
E 14 F
A B C D E F
0 4 6 3 8 12
Distance Array
1 -1 -1 1 -1 -1 Visited Array
AB DC AD DE DF MST Array
Example - 8
A Current Vertex: B
4 7
3 Node with min. distance : B
B 5 6 Mark B as Visited
D C
A B C D E F
0 4 6 3 8 12
Distance Array
1 1 -1 1 -1 -1 Visited Array
AB DC AD DE DF MST Array
Example - 9
A Current Vertex: B
4 7
3 Prev. Distance of E : 8
B 5 6 Distance of E from B : 2
D C
A B C D E F
0 4 6 3 2 12
Distance Array
1 1 -1 1 -1 -1 Visited Array
AB DC AD BE DF MST Array
Example - 10
A Current Vertex: E
4 7
3 Node with min. Distance : E
B 5 6 Mark E as Visited
D C
A B C D E F
0 4 6 3 2 12
Distance Array
1 1 -1 1 1 -1 Visited Array
AB DC AD BE DF MST Array
Example - 11
A Current Vertex: C
4 7
3 Node with min. Distance : C
B 5 6 Mark C as Visited
D C
A B C D E F
0 4 6 3 2 9
Distance Array
1 1 1 1 1 -1 Visited Array
AB DC AD BE CF MST Array
Example - 12
A Current vertex: F
4 7
3 F last node to be processed
B 5 6 All adjacent nodes already done
D C
2 No updates
8 9
12
E 14 F
A B C D E F
0 4 6 3 2 9
Distance Array
1 1 1 1 1 1 Visited Array
AB DC AD BE CF MST Array
Example - 13
A Processing Completed
4 7
3 MST stored in MST array
B 5 6
D C
2 8 9
12
E 14 F
A B C D E F
0 4 6 3 2 9
Distance Array
1 1 1 1 1 1 Visited Array
AB DC AD BE CF MST Array
Analysis of MST Algorithms
• Kruskal Algorithm:
– Sorting of Edges, O(E log E)
– Processing of Edges, O(E)
– Complete procedure: O(E log E)
• Prim Algorithm:
– Depends on Procedure get_minimum
– If implemented using arrays, O(V2)
– Using Priority Queues, O(E log V)
The End