Union-Find (Disjoint Set Union) śledzi podział elementów na rozłączne zbiory i wspiera dwie operacje o złożoności prawie O(1): find (w jakim zbiorze znajduje się x?) i union (połącz dwa zbiory). Doskonale sprawdza się w zapytaniach o łączność.
Idea
Każdy zbiór jest drzewem z reprezentacyjnym korzeniem. Przy zastosowaniu i , operacje działają w prawie stałym czasie (odwrotna funkcja Ackermanna, α(n)).
