Data Structures and Algorithms
Data Structures and Algorithms
LECTURE 27
KRUSKALS ALGORITHM
IMRAN IHSAN
ASSISTANT PROFESSOR
AIR UNIVERSITY, ISLAMABAD
KRUSKALS ALGORITHM
Kruskals algorithm sorts the edges by weight and goes through the edges from least weight
to greatest weight adding the edges to an empty graph so long as the addition does not
create a cycle
EXAMPLE
EXAMPLE
EXAMPLE
EXAMPLE {C, E}
{H, I}
{G, I}
{F, G}
First, we sort the edges based on weight {B, E}
{E, H}
{B, C}
{H, K}
{H, L}
{D, E}
{G, H}
{I, K}
{B, D}
{D, F}
{E, G}
{K, L}
{J, K}
{J, I}
{J, G}
{A, B}
{A, D}
{E, F}
10
EXAMPLE {C, E}
{H, I}
{G, I}
{F, G}
We add edge {H, I} {B, E}
{E, H}
{B, C}
{H, K}
{H, L}
{D, E}
{G, H}
{I, K}
{B, D}
{D, F}
{E, G}
{K, L}
{J, K}
{J, I}
{J, G}
{A, B}
{A, D}
{E, F}
12
EXAMPLE {C, E}
{H, I}
{G, I}
{F, G}
We add edge {F, G} {B, E}
{E, H}
{B, C}
{H, K}
{H, L}
{D, E}
{G, H}
{I, K}
{B, D}
{D, F}
{E, G}
{K, L}
{J, K}
{J, I}
{J, G}
{A, B}
{A, D}
{E, F}
14
EXAMPLE {C, E}
{H, I}
{G, I}
{F, G}
We add edge {E, H} {B, E}
This coalesces the two spanning sub-trees into one {E, H}
{B, C}
{H, K}
{H, L}
{D, E}
{G, H}
{I, K}
{B, D}
{D, F}
{E, G}
{K, L}
{J, K}
{J, I}
{J, G}
{A, B}
{A, D}
{E, F}
16
EXAMPLE {C, E}
{H, I}
{G, I}
{F, G}
We add edge {H, K} {B, E}
{E, H}
{B, C}
{H, K}
{H, L}
{D, E}
{G, H}
{I, K}
{B, D}
{D, F}
{E, G}
{K, L}
{J, K}
{J, I}
{J, G}
{A, B}
{A, D}
{E, F}
18
EXAMPLE {C, E}
{H, I}
{G, I}
{F, G}
We add edge {D, E} {B, E}
{E, H}
{B, C}
{H, K}
{H, L}
{D, E}
{G, H}
{I, K}
{B, D}
{D, F}
{E, G}
{K, L}
{J, K}
{J, I}
{J, G}
{A, B}
{A, D}
{E, F}
20
EXAMPLE {C, E}
{H, I}
{G, I}
{F, G}
We try adding {I, K}, but it creates a cycle {B, E}
{E, H}
{B, C}
{H, K}
{H, L}
{D, E}
{G, H}
{I, K}
{B, D}
{D, F}
{E, G}
{K, L}
{J, K}
{J, I}
{J, G}
{A, B}
{A, D}
{E, F}
22
EXAMPLE {C, E}
{H, I}
{G, I}
{F, G}
We try adding {D, F}, but it creates a cycle {B, E}
{E, H}
{B, C}
{H, K}
{H, L}
{D, E}
{G, H}
{I, K}
{B, D}
{D, F}
{E, G}
{K, L}
{J, K}
{J, I}
{J, G}
{A, B}
{A, D}
{E, F}
24
EXAMPLE {C, E}
{H, I}
{G, I}
{F, G}
By observation, we can still add edges {J, K} and {A, B} {B, E}
{E, H}
{B, C}
{H, K}
{H, L}
{D, E}
{G, H}
{I, K}
{B, D}
{D, F}
{E, G}
{K, L}
{J, K}
{J, I}
{J, G}
{A, B}
{A, D}
{E, F}
26