最小生成树
最小生成树(Minimum Cost Spanning Tree),简称MST, 给定一个带权的无向连通图,如何选取一棵生成树,使树上所有边上权的总和为最小,这叫最小生成树。如果有N个顶点,则一定有N-1条边。求最小生成树的算法主要是普里姆算法和克鲁斯卡尔算法。
克鲁斯卡尔算法应用案例
问如何修路保证各个站点都能连通,并且总的修建公路总里程最短?
克鲁斯卡尔算法基本介绍
基本思想:按照权值从小到大的顺序选择N-1条边,并保证这N-1条边不构成回路。
由此可知步骤应该是先把边数的权值按照从小到大的顺序排序,然后还要判断是否形成回路,如果没有回路就把该边加入到最小生成树中。
因此应先构建一个站点的图
public class Kruskal {
private int edgeNum;//边的条数
private char[] vertexs;//顶点数组
private int[][] martrix;//图用邻接矩阵