최소 신장 트리(Minimum Spanning Tree) - 5
2023. 4. 9. 17:23
Algorithm/MST
Kruskal 알고리즘의 정리 Kruskal 알고리즘은 다음과 같은 방식을 따른다. 가중치에 대해서 간선들을 정렬한다. 각 정점에 대한 Union-Find 자료구조를 초기화시킨다. 정렬된 간선들을 하나씩 택하면서 find를 통해 동일 집합에 포함되는지를 판단한다. 이때, 동일 집합이 아니라면, 가중치의 합에 해당 간선의 가중치를 더하고, 두 정점을 합친다(Union) Union-Find를 어떻게 구현하는지는 앞서 설명한 글이 있으니 그것을 참고한다. Kruskal 알고리즘의 구현 // 알고리즘 - 최소 신장 트리 // 크루스칼 알고리즘 import java.util.Arrays; public class Main { // O(E logE) static int[] parents; static int[] si..