最小生成树-Prim算法和Kruskal算法
来源:互联网 发布:手机报纸排版软件 编辑:程序博客网 时间:2024/05/17 23:55
Prim算法
1.概览
普里姆算法(Prim算法),图论中的一种算法,可在加权连通图里搜索最小生成树。意即由此算法搜索到的边子集所构成的树中,不但包括了连通图里的所有顶点,且其所有边的权值之和亦为最小。该算法于1930年由捷克数学家沃伊捷赫·亚尔尼克发现;并在1957年由美国计算机科学家罗伯特·普里姆独立发现;1959年,艾兹格·迪科斯彻再次发现了该算法。因此,在某些场合,普里姆算法又被称为DJP算法、亚尔尼克算法或普里姆-亚尔尼克算法。
2.算法简单描述
1).输入:一个加权连通图,其中顶点集合为V,边集合为E;
2).初始化:Vnew = {x},其中x为集合V中的任一节点(起始点),Enew = {},为空;
3).重复下列操作,直到Vnew = V:
a.在集合E中选取权值最小的边<u, v>,其中u为集合Vnew中的元素,而v不在Vnew集合当中,并且v∈V(如果存在有多条满足前述条件即具有相同权值的边,则可任意选取其中之一);
b.将v加入集合Vnew中,将<u, v>边加入集合Enew中;
4).输出:使用集合Vnew和Enew来描述所得到的最小生成树。
下面对算法的图例描述
Kruskal算法:用一个结构体来记录边的性质,边的两端和长度,先把边的长度排序,然后依次选取,在选取时,把边的两端赋值为相等,即代表了同一个分量,所以每次选取都要判断
边的两端值是否相等。所以要用一个辅助数组来标记分量,根据MST性质,最短路程连接的点等于总共的点n-1个,如果用Kruskal算法,它的辅助数组的值将全部相等,这是Kruskal算法的技巧。而且更新恰好为n-1个。
0 0
- 最小生成树--Prim和Kruskal算法
- 最小生成树 prim算法和kruskal
- 最小生成树Prim和Kruskal算法
- 最小生成树算法:prim和kruskal
- 最小生成树 ,prim 和Kruskal 算法
- 最小生成树prim和kruskal算法
- Kruskal和Prim--最小生成树算法
- 最小生成树算法 :Prim算法 和 Kruskal 算法
- 最小生成树算法—Kruskal算法和Prim算法
- 最小生成树-Kruskal算法-Prim算法
- 最小生成树 Prim算法 Kruskal算法
- 最小生成树Prim算法Kruskal算法
- 最小生成树Prim算法,Kruskal算法
- 最小生成树(Prim算法和Kruskal算法)
- [最小生成树]Prim算法和Kruskal算法
- 最小生成树(Prim算法和Kruskal算法)
- 最小生成树—kruskal算法和prim算法
- 最小生成树:Prim算法和Kruskal算法
- oracle 存储过程编辑 卡死
- vmware 安装win2003笔记
- InstallShield8.0 制作安装包(原文出自vc知识库)
- 正则表达式中各种字符的含义
- 关于Android高德地图4.12无法显示地图只显示Logo问题,非只添加 jniLibs.srcDirs = ['libs']就解决的
- 最小生成树-Prim算法和Kruskal算法
- java小游戏初级
- Jmeter请求参数Json格式
- NSURLCache
- vs2010安装包制作
- kafka的Consumer均衡算法
- hadoop2.7.3 搭建QA
- E
- redis命令详解与使用场景举例——Set(集合)