disjoint sets
0
1
2
3
4
parent[]
| 0 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 |
Disjoint Set Union
▸1parent[i] ← i // each node its own set2find(x): while parent[x] != x: x = parent[x]; return x3union(a, b):4 ra, rb ← find(a), find(b)5 if ra != rb: parent[rb] = ra6// same set? ⇔ find(a) == find(b); #sets = distinct roots
state
- sets5
- parent[0,1,2,3,4]