无向网的最小生成树及wpl怎么求
构造最小生成树得算法通常有以下两种:
克鲁斯卡尔算法(Kruskai)
从边的角度求网的最小生成树,时间复杂度为O(eloge)。和普里姆算法恰恰相反,更适合于求边稀疏的网的最小生成树。
思路步骤:
1、将边全部提取出来放入一个列表中,从权重小到大依次排序
2、将最小权重的边放入图中与对应的顶点相连
3、要确保边填入后不能形成环,如果形成环就丢弃这条边
4、知道加入了(n-1)条边最小生成树构造完成。(n是树中顶点的数量)
普里姆算法(Prim)
该算法从顶点的角度为出发点,时间复杂度为O(n2),更适合与解决边的绸密度更高的连通网。
思路步骤:
1、从顶点开始出发,选择权重最小的边连接。
2、连接完新的顶点后继续找最小权重边,与已经连接的全部顶点所连接的边都要对比。
3、连接后判断是否形成环,形成的话则放弃,回退权重第二小的边以此类推。
树的带权路径长度WPL=(W1L1+W2L2+W3L3+...+WnLn)