**disjoint-set(서로소 집합, union-find)**은 겹치지 않는 그룹으로 분할된 원소들을 추적하며, "이 둘이 같은 그룹에 있는가?"와 "두 그룹을 병합하라"를 거의 상수 시간에 답합니다. **경로 압축(path compression)**과 **랭크 기반 합집합(union by rank)**을 사용하면 두 연산 모두 **O(α(n))**으로 동작합니다. 사실상 O(1)입니다(α는 역 아커만 함수).
동작 방식
각 집합은 트리이고, 가 집합의 대표입니다. 는 루트까지 걸어가고, 은 한 루트를 다른 루트 아래에 연결합니다.
