CSE 421
Union Find DS Dijkstra’s Algorithm,
Shayan Oveis Gharan
1
CSE 421 Union Find DS Dijkstras Algorithm , Shayan Oveis Gharan 1 - - PowerPoint PPT Presentation
CSE 421 Union Find DS Dijkstras Algorithm , Shayan Oveis Gharan 1 Union Find Data Structure Each set is represented as a tree of pointers, where every vertex is labeled with longest path ending at the vertex To check whether A,Q are in
Shayan Oveis Gharan
1
D,2
vvA,1
vvB,0
vvC,0
vvW,1
vvP,0
vvQ,0
{A,B,C,D} {W,P,Q}
D,2
vvA,1
vvB,0
vvC,0
vvW,1
vvP,0
vvQ,0
vvD,2
vvA,1
vvB,0
vvC,0
vvW,1
vvP,0
vvQ,0
vvW,1
vvQ,0
vvD,1
vvA,0
vvW,2
vvQ,0
vvD,1
vvA,0 At most one label must be adjusted
D,2
vvA,1
vvB,0
vvC,0
vvW,1
vvP,0
vvQ,0
Kruskal(G, c) { Sort edges weights so that c1 £ c2 £ ... £ cm. " ← ∅ foreach (% ∈ ') make a set containing singleton {%} for i = 1 to m Let (u,v) = ei if (u and v are in different sets) { " ← " È {*+} merge the sets containing % and , } return " } Find roots and compare Merge at the roots
. < !"% . < ⋯ ≤ !"' .
UW Amazon
Dijkstra(G, c, s) { foreach (v Î V) d[v] ¬ ¥ //This is the key of node v ! " ← $ foreach (v Î V) insert v onto a priority queue Q Initialize set of explored nodes S ¬ {s} while (Q is not empty) { u ¬ delete min element from Q S ¬ S È { u } foreach (edge e = (u, v) incident to u) if ((v Ï S) and (d[u]+ce < d[v])) ! % ← ! & + () Decrease key of v to d[v]. *+,)-. % ← & }
¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥ ¥
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 ¥ ¥ 9 ¥ ¥ ¥ ¥ ¥ ¥ ¥
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 ¥ ¥ 9 ¥ ¥ ¥ ¥ ¥ ¥ ¥
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 ¥ 8 9 ¥ ¥ ¥ ¥ 7 5 ¥
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 ¥ 8 9 ¥ ¥ ¥ ¥ 7 5 ¥
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 ¥ 8 9 ¥ ¥ ¥ ¥ 7 5 13
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 ¥ 8 9 ¥ ¥ ¥ ¥ 7 5 13
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 ¥ 8 9 ¥ ¥ ¥ ¥ 7 5 13
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 16 8 9 ¥ ¥ ¥ ¥ 7 5 13
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 16 8 9 ¥ ¥ ¥ ¥ 7 5 13
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 16 8 9 15 ¥ 10 ¥ 7 5 13
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 16 8 9 15 ¥ 10 ¥ 7 5 13
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 16 8 9 15 14 10 20 7 5 13
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 16 8 9 15 14 10 20 7 5 13
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 16 8 9 15 14 10 19 7 5 13
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 16 8 9 15 14 10 19 7 5 13
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 16 8 9 15 14 10 18 7 5 13
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
2 4 16 8 9 15 14 10 18 7 5 13
4 2 5 10 1 8 4 3 4 3 1 5 8 2 5 6 7 9
s
% in the shortest from s to u.
,.
, is not the shortest path there
, .
v y u s x $
,
$