알고리즘/이론과 문법
Union & Find
lipnus
2019. 2. 28. 13:55
반응형
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에 연결된다.
찾는 과정에서 연결해줌.
반응형