最小生成树
通俗的讲,最小生成树就是用一条路径将图中的所有顶点链接起来,并且保证该路径上的权值之和是最小的.以保证该路径的唯一.重点就在于权值的最小.
算法
普里姆算法: 该算法利用两个集合,一个是保存了,已经找到的符合条件(权值最小)的弧的顶点集合U,一个是保存了除U集合剩下的顶点的集合S. 若图G = {顶点V, 弧E}, 那么S = V - U
算法步骤:
1.初始化.选择图中的任意一个顶点u_0放到集合U中,表示选中一个顶点.U = {u_0}
2.计算S = V - U; 分别从U和S中选择一个顶点,保证u_0----s_0在图中的弧是存在的并且所选取的s_0到U中选取的顶点u_0的权值是最小的. .然后将s_0放入U集合中.
3.重复步骤2.直至U == V.
克鲁斯卡尔算法: 初始时将图划分为顶点个数个集合. 每个顶点一个集合,在不同的集合中选取当前权值最小的顶点..
算法步骤:
1.初始化.将图按顶点划分集合.此时每个顶点(集合)是独立的.即不相等的..
2.在所有不相等的集合中选取两个顶点v_1, v_2.使得构成的弧v_1--->v_2的权值最小.然后将这两个顶点所处的集合 合并为