Advanced Topic 40 of 51 Algorithms
Prim's Algorithm
MST grown from one vertex by adding cheapest crossing edge.
How it works
Prim's algorithm grows a minimum spanning tree from a starting vertex, always adding the cheapest edge that connects a tree vertex to a vertex outside it. A priority queue keyed by edge or vertex weight picks it efficiently, giving O(E log V) with a binary heap, or O(E + V log V) with a Fibonacci heap. An adjacency matrix version runs in O(V squared).
Step-by-step walkthrough
- Start from any vertex and mark it in the tree.
- Look at all edges leaving the tree.
- Pick the cheapest crossing edge.
- Add its far endpoint to the tree.
- Repeat with the larger frontier until all vertices are included.
Where it is used
Laying out electrical grids, computer networks and road systems, approximating traveling salesman tours and dense graph problems use Prim's algorithm, which works well when the graph is stored as an adjacency list or matrix.
Common pitfall
It requires a connected graph, otherwise it only spans one component. Stale queue entries must be skipped. Confusing it with Dijkstra's algorithm is common: Prim's uses edge weight alone as the key, not cumulative distance. Initialize keys to infinity and track the parent for building the result.
Where it fits in the course
Prim's Algorithm is topic 40 of 51 in Algorithms, rated Advanced. It follows Kruskal's Algorithm. The next topic is Strongly Connected Components.
Practice and explore
- Open the interactive lesson, with a mini quiz.
- Take the Algorithms quiz.
How to study this topic
- Read the explanation above and restate the definition in your own words.
- Open the interactive lesson and answer its mini quiz.
- Read the common pitfall, then write a short example that avoids it.
- Check your understanding in the Algorithms quiz, and revisit the topic if you miss a question.
Frequently asked questions
What is Prim's Algorithm?
Where do people use Prim's Algorithm?
What is the most common mistake with Prim's Algorithm?
What should I learn before this topic?
How can I practice it?
Is Prim's Algorithm hard to learn?
How long does it take to learn Prim's Algorithm?
Which topics are related to Prim's Algorithm?
What should I study after Prim's Algorithm?
Related topics
- Kruskal's Algorithm (Algorithms)
- Strongly Connected Components (Algorithms)
- Minimum Spanning Tree (Algorithms)
- Maximum Flow (Algorithms)
- Shor's Algorithm (Emerging & Frontier Topics)
- Grover's Algorithm (Emerging & Frontier Topics)