Borůvka 알고리즘은 그래프 위해 스패닝 트리 최소 계산을위한 표준 알고리즘 중 하나 인 와 .
의사 코드는 다음과 같습니다.
MST T = empty tree
Begin with each vertex as a component
While number of components > 1
For each component c
let e = minimum edge out of component c
if e is not in T
add e to T //merging the two components connected by e
우리는 외부 루프의 각 반복을 라운드라고 부릅니다. 각 라운드에서 내부 루프는 구성 요소 수를 최소한 절반으로 줄입니다. 따라서 최대 라운드가 있습니다. 각 라운드에서 내부 루프는 각 모서리를 최대 두 번 (각 구성 요소에서 한 번) 본다. 따라서 실행 시간은 최대 입니다.
이제 각 라운드 후에 동일한 구성 요소 내에서 꼭짓점 만 연결하는 모든 가장자리를 제거하고 구성 요소 사이의 중복 가장자리를 제거하여 내부 루프가 최소 무게 가장자리 인 가장자리 수 'm'<m 만보 고 이전에 연결 해제 된 두 구성 요소를 연결하십시오.
이 최적화는 실행 시간에 어떤 영향을 줍니까?
우리가 어떻게 든 각 라운드에서 에지 수를 반으로 줄이면 실행 시간이 크게 향상됩니다 : .
그러나 최적화를 통해 검사되는 모서리의 수를 크게 줄일 수 있지만 (최종 라운드에서 1 개의 모서리 만 사용하고 최대 개수의 구성 요소는 일반적으로 2를 선택합니다),이 사실을 사용하여 분석을 강화할 수있는 방법 / 사용 방법이 확실하지 않습니다 런타임의.