最小生成树-普里姆方法(Prim)
来源:互联网 发布:linux cs 编辑:程序博客网 时间:2024/05/04 06:34
生成树:保留一部分的边,使图连通但无回路。
普里姆方法(Prim)步骤:
(1) 找最小边,及两个顶点为最初的树
(2) 与树相接的边中取权值最小的一条边
(3) 将边及相应顶点并入树
循环(2) (3)可得到最小生成树。
示例如下:
C代码如下:
void Prim(MGraph g,int v, int &sum){//lowcost记录树到各顶点的最小权值,vset记录顶点v是否并入树int lowcost[maxSize], vset[maxSize];int i, j, k, min;sum = 0;//sum用来累计树的权值for(i = 0; i < g.n; ++i){//lowcost、vset赋初值lowcost[i] = g.edges[v][i];vset[i] = 0;}vset[v] = 1;for(i = 0; i < g.n-1; ++i){//共选出n-1条边min = INF;//INF是一个比所有权值都大的常量for(j = 0; j < g.n; ++j)//选树到各顶点的边的最小值if(vset[j] == 0 && lowcost[j] < min){min = lowcost[j];k = j;}vset[k] = 1;//入树sum += min;for(j = 0; j < g.n; ++j)//更新树到其他顶点的边的最小值if(vset[j] == 0 && g.edges[k][j] < lowcost[j])lowcost[j] = g.edges[k][j];}//for i}//end
时间复杂度为O(n^2),与顶点数有关,与边的数量无关,适用于稠密图。
0 0
- 最小生成树-普里姆方法(Prim)
- 最小生成树Prim方法
- 普里姆(Prim)求最小生成树
- 最小生成树prim(普里姆)算法
- 最小生成树-普里姆算法(Prim)
- 最小生成树(prim)
- 最小生成树(Prim)
- prim(最小生成树)
- 最小生成树(prim)
- 最小生成树(Prim)
- QS Network (最小生成树——prim方法)
- [数据结构]普里姆(Prim)算法生成最小生成树
- Prim最小生成树
- 最小生成树 prim
- 最小生成树 Prim
- 最小生成树-Prim
- Prim最小生成树
- 最小生成树 Prim
- 一个工作快八年的老IT人士这几年沉浮总结的职场经验教训
- C/C++程序开发中实现信息隐藏的三种类型
- LaTeX学习记录
- spark源码学习(八)--- executor启动task分析
- 程序结构&&程序设计(三)
- 最小生成树-普里姆方法(Prim)
- 【Linux 基础篇】之软件管理.
- 函数参数传递
- GreenDao框架,生成类个人注释
- [Python] re(正则表达式) 模块使用方法
- jQuery 小技巧合集
- Cocos2d-x PageView的使用
- 蓝桥网算法提高 学霸的迷宫
- 二叉树——二叉树的遍历