Path-Compression
서로소 집합 최적화 방법 중 하나
Find-set을 행하는 과정에서 만나는 모든 노드들이 직접 root를 가리키도록 포인터를 바꾸어주는 방법
Rank와 함께 사용한다
static int findset(int x) {
// if(x == p[x]) return x;
// return findset(p[x]);
// path Compression 적용하면
if(x != p[x]) p[x] = findset(p[x]);
return p[x];
}
Path-Compression 주의점
대표자 변경이 되었음에도 불구하고 Fin-set이 일어난 노드에 대해서만 경로 압축이 일어난다. 즉, 트리의 구조가 항상 대표를 직접 가리키고 있는 모양은 아니다.