Below are the steps for finding MST using Kruskal’s algorithm
1. Sort all the edges in non-decreasing order of their weight.
2. Pick the smallest edge. Check if it forms a cycle with the spanning tree formed so far. If cycle is not formed, include this edge. Else, discard it.
3. Repeat step#2 until there are (V-1) edges in the spanning tree.
We have discussed one implementation of Kruskal’s algorithm in previous post. In this post, a simpler implementation for adjacency matrix is discussed.
Edge 0:(0, 1) cost:2 Edge 1:(1, 2) cost:3 Edge 2:(1, 4) cost:5 Edge 3:(0, 3) cost:6 Minimum cost= 16
Note that the above solution is not efficient. The idea is to provide a simple implementation for adjacency matrix representations. Please see below for efficient implementations.
Kruskal’s Minimum Spanning Tree Algorithm | Greedy Algo-2
Kruskal’s Minimum Spanning Tree using STL in C++
- Prim's Algorithm (Simple Implementation for Adjacency Matrix Representation)
- Strassen’s Matrix Multiplication Algorithm | Implementation
- Dijkstra’s Algorithm for Adjacency List Representation | Greedy Algo-8
- Push Relabel Algorithm | Set 2 (Implementation)
- Karger's algorithm for Minimum Cut | Set 1 (Introduction and Implementation)
- Johnson’s algorithm for All-pairs shortest paths | Implementation
- Hopcroft–Karp Algorithm for Maximum Matching | Set 2 (Implementation)
- Freivald’s Algorithm to check if a matrix is product of two
- DFS for a n-ary tree (acyclic graph) represented as adjacency list
- Prim’s MST for Adjacency List Representation | Greedy Algo-6
- C/C++ program to make a simple calculator
- Number of Simple Graph with N Vertices and M Edges
- Program to check diagonal matrix and scalar matrix
- Circular Matrix (Construct a matrix with numbers 1 to m*n in spiral way)
- Program to check if a matrix is Binary matrix or not