Data Structures24 min read

Disjoint Set Union

Learn Union-Find (DSU) to manage connected components efficiently, with path compression and real examples like grouping networks.

David Miller
December 21, 2025
0.0k0

Disjoint Set Union (DSU) helps manage groups.

It answers: - Are two items connected? - Can we merge two groups?

Real examples - friend networks - computer networks - clustering

Basic structure ```python class DSU: def __init__(self, n): self.parent = list(range(n))

def find(self, x): if self.parent[x] != x: self.parent[x] = self.find(self.parent[x]) return self.parent[x]

def union(self, a, b): pa, pb = self.find(a), self.find(b) if pa != pb: self.parent[pb] = pa ```

Usage ```python dsu = DSU(5) dsu.union(0, 1) dsu.union(1, 2) print(dsu.find(0) == dsu.find(2)) # True ```

Graph: groups merging ```mermaid flowchart LR A[0] --> B[1] B --> C[2] D[3] --> E[4] ```

Remember - find() locates group leader - union() merges groups - path compression makes it fast

#Python#Advanced#UnionFind