用普里姆(Prim)算法求解最小生成树原理 假设N=(P,E) 是连通网, TE 是N 上最小生成树中的边集合。算法从 U=U0(U0∈V),TE=∅ 开始,重复执行下述操作:在所有的 u∈U,v∈V−U 的边(u,v)∈E 中找一条代价最小的边 (u0,v0) 并入集合 TE ,同时 v0 并入U ,直到 U=V 为止。 此时 TE ...
此时,TE中必有n-1条边,T=(V,TE)为G的最小生成树。 Prim算法的核心:始终保持TE中的边集构成一棵生成树。 注意:prim算法适合稠密图,其时间复杂度为O(n^2),其时间复杂度与边得数目无关,而kruskal算法的时间复杂度为O(eloge)跟边的数目有关,适合稀疏图。 举个简单的例子来说明具体的实现方法: G:图,用...
Prim 算法思想: 从任意一顶点 v0 开始选择其最近顶点 v1 构成树 T1,再连接与 T1 最近顶点 v2 构成树 T2, 如此重复直到所有顶点均在所构成树中为止。 最小生成树(MST):权值最小的生成树。 生成树和最小生成树的应用:要连通n个城市需要n-1条边线路。可以把边上的权值解释为线路的造价。则最小生成树表示...