Abstract
In this paper, we present an efficient implementation of Kruskal's algorithm to obtain a minimum spanning tree. The proposed method utilizes the union-find data structure, reducing the depth of the tree of the node set by making the nodes in the path to root be the child node of the root of combined tree. This method can reduce the depth of the tree by shortening the path to the root and lowering the level of the node. This is an efficient method because if the tree's depth reduces, it could shorten the time of finding the root of the tree to which the node belongs. The performance of the proposed method is evaluated through the graphs generated randomly. The results showed that the proposed method outperformed the conventional method in terms of the depth of the tree.
본 논문에서는 최소신장트리를 구하는 크루스칼 알고리즘의 효율적인 구현 방법을 제시한다. 제시하는 방법은 union-find 자료구조를 이용하며, 노드 집합을 나타내는 각 트리의 깊이를 줄이기 위해 union 연산시 루트까지의 경로에 있는 노드들의 위치를 최종 루트의 자식노드로 직접 이동하여 깊이를 줄이도록 하는 방법이다. 이 방법은 루트까지의 경로를 축소하고 노드의 레벨을 축소시킴으로써 트리의 깊이도 줄일 수 있다. 트리의 깊이가 줄어든다면 노드가 속하는 트리의 루트를 찾는 시간을 줄일 수 있게 되어 효율적인 방법이라 할 수 있다. 본 장에서 제안하는 방법을 그래프로 평가해보고 분석해 본 결과, 기존의 union() 방법이나 경로축소방법인 union2() 보다 트리의 깊이를 작게 유지함을 알 수 있다.