What are the differences between Prim's and Kruskal's algorithms in finding the Minimum Spanning Tree?

Instruction: Describe Prim's and Kruskal's algorithms and compare their approaches to finding a Minimum Spanning Tree.

Context: This question tests the candidate's knowledge of two fundamental algorithms for finding the Minimum Spanning Tree and their different strategies.

Updated

Official answer

Both algorithms find a minimum spanning tree of a connected, undirected, weighted graph. They minimize total selected edge weight while connecting every vertex without cycles. Edge weights may be negative; equal weights can allow multiple valid MSTs.

Prim grows one tree by repeatedly taking a minimum-weight edge crossing from its current vertices to an outside vertex. An eager binary-heap implementation is O(E log V); an adjacency-matrix version can be O(V²).

Kruskal sorts edges by weight and adds an edge only when its endpoints belong to different components. Union-find tracks those components. Sorting gives O(E log E) time in the standard implementation.

Their greedy choices are justified by the cut property, not merely a hope that a local choice will work. For a disconnected graph, Kruskal produces a minimum spanning forest; Prim must restart in each unvisited component to do the same.

Choose based on representation, density, available implementations and measurements. “Prim for dense, Kruskal for sparse” is a useful starting heuristic, not a universal performance guarantee.

Source

Princeton Algorithms: minimum spanning trees.

Related Questions