반응형
Union & Find
static void union(int a, int b) {
int aRoot = find(a);
int bRoot = find(b);
parent[bRoot] = aRoot; //b는 자기자신을 가리키다가 a를 가리키게 된다
}
static int find(int a) {
if(parent[a]==a) {
return a;
}
else {
parent[a] = find(parent[a]);
return parent[a];
}
}
parent[a] = find(parent[a]);
이걸로 인해 탐색성능이 향상된다.
하나씩 타고가는게 아니라 모든 하위노드들이 바로 Root에 연결된다.
찾는 과정에서 연결해줌.
반응형
'알고리즘 > 이론과 문법' 카테고리의 다른 글
정렬알고리즘 속도 (0) | 2019.03.21 |
---|---|
Stable & Unstable Sort (안정정렬, 불안정정렬) (0) | 2019.03.21 |
기억해야 될 것들 (0) | 2019.01.27 |
크루스칼 다익스트라 알고리즘 차이 (0) | 2019.01.19 |
인덱스 트리 (0) | 2019.01.17 |