生成树
已知无向连通图 G G G,图上有 n n n个顶点。生成树是指图 G G G的一个极小(边最少)连通子图,生成树上有 n n n个顶点、 n − 1 n - 1 n−1条边,且任意两点之间都是连通的。
最小生成树
已知无向带权连通图 G G G,图中有 n n n个顶点,每条边都有权值。我们要从图中抽出一棵生成树,使得树上所有边权之和最小,这棵生成树就叫做最小生成树(Minimum Spanning Tree, MST)。
Kruskal 算法
算法过程
首先按照边权从小到大排序,接着遍历每一条边,如果这条边连接的两点不在同一个连通块,就连接这条边,否则不进行操作
因为要用到判连通和合并操作,所以会使用到并查集
算法演示
第一步:将所有的边按边权从小到大排序。排序完成后,我们选择权值最小的边 < J , N > <J, N> <J,N>。这样我们的图就变成了:
第二步,在剩下的边中寻找权值最小的边 < U , X > <U, X>