最小生成树问题:给定无向连通图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