Overview
Boruvka's algorithm starts with each vertex as its own component, finds the cheapest edge leaving every component, adds those edges, and contracts the resulting components.
Builds a minimum spanning tree by repeatedly adding each component's cheapest outgoing edge.
Compact metadata for implementation and discovery.
Boruvka's algorithm starts with each vertex as its own component, finds the cheapest edge leaving every component, adds those edges, and contracts the resulting components.
Quick facts
Runtime and memory behavior at a glance.
Best
O(V + E)
Average
O((V + E) log V)
Worst
O(V^2 + E)
Space
O(V + E)
Show growing many tree components at once and repeatedly adding each component's cheapest outgoing edge on a small minimum spanning tree construction example.
Boruvka's rounds can shrink the number of components quickly, especially on sparse graphs.
What each reference supports for this entry.
Textbook support for Boruvka's Algorithm's algorithm family, complexity framing, and standard implementation concepts.
Open sourceAlgorithm catalog support for Boruvka's Algorithm in the graph, flow, matching, and combinatorial optimization benchmark area.
Open sourceGood next jumps from the relationship graph, ranked for useful discovery.
Graph Traversal · Core
Boruvka's Algorithm uses Kruskal's Algorithm as a subroutine, representation, or supporting idea while growing many tree components at once and repeatedly adding each component's cheapest outgoing edge.
Compare with thisBoruvka's Algorithm uses Reverse-Delete Algorithm as a subroutine, representation, or supporting idea while growing many tree components at once and repeatedly adding each component's cheapest outgoing edge.
Boruvka's Algorithm uses Minimum Spanning Tree as a subroutine, representation, or supporting idea while growing many tree components at once and repeatedly adding each component's cheapest outgoing edge.
Boruvka's Algorithm uses Kruskal's Algorithm as a subroutine, representation, or supporting idea while growing many tree components at once and repeatedly adding each component's cheapest outgoing edge.