합집합 찾기 자료구조
합집합 찾기 자료구조은 원소가 어떤 서로소 집합에 속하는지 확인하고 두 집합을 병합한다 분리 집합 자료구조 분야의 대표적인 기술로, 데이터의 표현과 입력 조건에 맞는 계산 절차를 정의한다. 적용 목적이 유사한 다른 방법과 비교할 때 정확성 보장과 결과의 해석이 중요하다.
| 분류 | 알고리즘 · 분리 집합 자료구조 |
|---|---|
| 주요 목적 | 원소가 어떤 서로소 집합에 속하는지 확인하고 두 집합을 병합한다 |
| 핵심 방법 | 각 집합을 대표하는 루트를 find로 찾고 union으로 두 대표를 연결한다 |
| 복잡도 | m번 연산에 상환 O(m α(n)), 공간 O(n) |
| 적용 조건 | 집합 병합은 제공하지만 일반 구조에서 임의 삭제·분리는 직접 지원하지 않는다 |
| 참고 자료 | 기술 자료 |
| 관련 분야 | 자료구조, 계산 복잡도 |
합집합 찾기 자료구조은 원소가 어떤 서로소 집합에 속하는지 확인하고 두 집합을 병합한다 분리 집합 자료구조 분야의 대표적인 기술로, 데이터의 표현과 입력 조건에 맞는 계산 절차를 정의한다. 적용 목적이 유사한 다른 방법과 비교할 때 정확성 보장과 결과의 해석이 중요하다.[1]
핵심 작동은 다음과 같다. 각 집합을 대표하는 루트를 find로 찾고 union으로 두 대표를 연결한다. 경로 압축과 크기·랭크 기반 결합을 함께 사용한다. 이 절차에서 각 단계에 유지되는 값의 의미를 정의하고 자료구조 또는 수치 표현에 따라 처리 순서를 구현한다.
계산 특성은 m번 연산에 상환 O(m α(n)), 공간 O(n) 실제 구현에는 집합 병합은 제공하지만 일반 구조에서 임의 삭제·분리는 직접 지원하지 않는다 단계마다 유지되어야 하는 불변식, 종료 조건과 입력 경계를 검사하면 수학적 모델을 프로그램의 동작과 연결할 수 있다.
활용과 다른 기법과의 관계에서는 크루스칼 최소 신장 트리와 연결 요소·동치 관계 관리에 사용한다. 일반적인 트리 탐색과 달리 집합 대표 관계만 관리한다. 실제 시스템에서는 시간·메모리 사용, 입출력 비용, 정밀도와 저장 형식이 성능에 영향을 줄 수 있다. 필요한 경우 가장 작은 입력과 중복·퇴화 상태도 시험해야 한다.[2]