最小生成树算法

最小生成树问题:给定无向连通图G(V,E),图中共n个点,每条边有一个权值,求出n-1条边,使得n个点能够相互连通,且边的权值之和最小

1.Prim算法

 (1)初始化,VN={x},x为图中任意一点

 (2)循环直至VN=V

  a.在E中选取权值最小的一条边(u,v),u∈VN,v∉VN&v∈V(若权值最小的边不止一条,则任意选择其中一条)

  b.将v加入VN 

 2.Kruskal算法

 (1)先构造一个只含 n 个顶点,而边集为空的子图,若将该子图中各个顶点看成是各棵树上的根结点,则它是一个含有 n 棵树的一个森林。

 (2)将E中的边按权值大小排序

 (3)循环直至森林中只有一棵树,EN中有n-1条边

  a.选取权值最小的边(u,v)

  b.若点u和v属于不同的树,则将边(u,v)加入EN

原文地址:https://www.cnblogs.com/guo-xiang/p/4626399.html