Advanced Topic 39 of 51 Algorithms
Kruskal's Algorithm
MST built by adding lightest edges avoiding cycles.
How it works
Kruskal's algorithm sorts all edges by weight and adds them one by one to the growing forest, skipping any edge that would create a cycle. A disjoint set union structure checks quickly whether two endpoints are already connected. Time is dominated by sorting, O(E log E), and it stops after V minus 1 edges have been accepted.
Step-by-step walkthrough
- Sort all edges by weight.
- Take the lightest edge, it joins two components.
- Add the next lightest edge if it does not form a cycle.
- Skip an edge that would close a cycle, found with union-find.
- Stop after V minus 1 edges, the tree is a minimum spanning tree.
Where it is used
Network design, clustering through single-linkage, approximating Steiner trees and building minimum spanning forests on sparse graphs use Kruskal's algorithm. It works naturally on an edge list.
Common pitfall
Forgetting to use union-find, or doing cycle checks with repeated DFS, makes it slow. Sorting by the wrong key or not sorting stably can change which of equal-weight trees is found. On very dense graphs Prim's algorithm can be faster. Make sure vertices are indexed consistently for the DSU.
Where it fits in the course
Kruskal's Algorithm is topic 39 of 51 in Algorithms, rated Advanced. It follows Minimum Spanning Tree. The next topic is Prim's Algorithm.
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 Kruskal's Algorithm?
Where do people use Kruskal's Algorithm?
What is the most common mistake with Kruskal's Algorithm?
What should I learn before this topic?
How can I practice it?
Is Kruskal's Algorithm hard to learn?
How long does it take to learn Kruskal's Algorithm?
Which topics are related to Kruskal's Algorithm?
What should I study after Kruskal's Algorithm?
Related topics
- Minimum Spanning Tree (Algorithms)
- Prim's Algorithm (Algorithms)
- A* Search (Algorithms)
- Strongly Connected Components (Algorithms)
- Shor's Algorithm (Emerging & Frontier Topics)
- Grover's Algorithm (Emerging & Frontier Topics)