[자료구조] Union Find / Disjoint-Set 알고리즘 개념 및 최적화
Algorithm/Data Structure 2023. 10. 16.
목 차
- Union-Find Algorithm
- 기본 개념
- 최적화
Union-Find Algorithm
기본적으로 Union-Find는 자료구조이다. 하지만 이 자료구조를 지원하는 Union과 Find는 알고리즘이다.
여러 노드가 서로 중복되지 않는 집합 여러 개로 나뉘어 있을 때, 각 집합을 대표하는 노드를 찾거나 두 집합을 합치는 연산을 하는 자료구조이다.
기본 개념
1. Union: 두 개의 원소가 포함된 집합을 하나로 합친다.
2. Find: 주어진 원소가 속한 집합의 대표 노드를 반환한다.
최적화
대표적인 최적화는 '경로압축' 인데, 바로 Find 연산을 수행할 때, 방문한 노드를 모두 그 집합의 대표 노드로 바꾸는 것이다.
여기에 'Rank' 시스템을 도입하면 시간 복잡도가 눈에 띄게 줄어드는데, 작은 집합을 큰 집합에 합치는 것이다.
이렇게 하면 트리의 높이가 낮아져서 Find와 Union 연산의 시간 복잡도가 줄어든다.
'Algorithm > Data Structure' 카테고리의 다른 글
[자료구조] 펜윅 트리 (Fenwick Tree) - Binary Indexed Tree (0) | 2023.12.06 |
---|---|
[자료구조] 세그먼트 트리 (Segment Tree) (0) | 2023.11.21 |
[자료구조] 우선순위 큐(Priority Queue) (0) | 2023.10.26 |