Class MinimumSpanningTreeBoruvka

java.lang.Object
com.jgalgo.alg.span.MinimumSpanningTreeAbstract
com.jgalgo.alg.span.MinimumSpanningTreeBoruvka
All Implemented Interfaces:
MinimumSpanningTree

public class MinimumSpanningTreeBoruvka extends MinimumSpanningTreeAbstract
Boruvka minimum spanning tree algorithm.

The algorithm run in iterations. In each iteration it finds the minimum edge incident for each vertex, and adds all of these edges to the forest. Each connected component in the forest become a 'super vertex' in the next iteration. The algorithm terminate when there is a single super vertex in the case the original graph was connected, or when there are no incident edges to the remaining super vertices.

The running time of the algorithm is \(O(m \log n)\) and it uses linear space. Note that only undirected graphs are supported.

Based on "O jistém problému minimálním" [About a certain minimal problem] by Borůvka, Otakar (1926).

Author:
Barak Ugav
See Also: