
Union-Find 알고리즘 (동치류 문제) / 크루스칼 알고리즘 - C 언어
·
C
Union-Find 알고리즘: 정점으로 구성된 집합을 관리하는 방법으로 집합의 합병과 요소가 어떤 부분집합에 속하는가를 판정하는 두 가지 연산.find 연산으로 특정 원소들을 집합 안에 있는지 없는지 판별하고, 없다면 두 원소들이 속한 트리들을 합병한다.Union = 2개의 원소로 이루어진 집합을 합치는 연산. = 합집합Find = 특정 원소가 속한 집합을 찾아주는 연산.총 세 가지 방법이 있다. 첫번째 방법 : 부모 노드 활용Find 연산123456789101112131415//자기 자신을 가지는 노드로 초기화.void initgroup() { for(i=0;in;i++){ parent[i] = i; }} //x가 속한 트리의 루트 값 반환.int find(int x) { while( x !..