所谓生成树就是
如果连通图G的一个子图是一棵包含G的所有顶点的树,则该子图称为G的生成树。
生成树是连通图的包含图中的所有顶点的极小连通子图。
(图的生成树不惟一。从不同的顶点出发进行遍历,可以得到不同的生成树)
而权值最小的树就是最小生成树。
关于生成树最经典的应用模型就是沟通零散点最小造价的问题,
比如网络G表示n各城市之间的通信线路网线路(其中顶点表示城市,边表示两个城市之间的通信线路,边上的权值表示线路的长度或造价)
通过求该网络的最小生成树达到求解通信线路或总代价最小的最佳方案
求图的最小生成树主要有两种经典算法:
1.普里姆算法时间复杂度为O(n2).适合于求边稠密的最小生成树。
2.克鲁斯卡尔算法时间复杂度为O(eloge)(e为网中边数),适合于求稀疏的网的最小生成树。
普里姆算法
通过邻接矩阵图表示的简易实现中,找到所有最小权边共需O(V2)的运行时间。使用简单的二叉堆与邻接表