导航:首页 > 源码编译 > 普里姆算法适合构造稠密图

普里姆算法适合构造稠密图

发布时间:2025-09-01 11:42:38

❶ 普里姆算法的普里姆算法的实现

为了便于在两个顶点集U和V-U之间选择权最小的边,建立了两个辅助数组closest和lowcost,它们记录从U到V-U具有最小权值的边,对于某个j∈V-U,closest[j]存储该边依附的在U中的顶点编号,lowcost[j]存储该边的权值。
为了方便,假设图G采用邻接矩阵g存储,对应的Prim(g,v)算法如下:
void Prim(MatGraph g,int v) //输出求得的最小生树的所有边
{ int lowcost[MAXVEX]; //建立数组lowcost
int closest[MAXVEX]; //建立数组closest
int min,i,j,k;
for (i=0;i<g.n;i++) //给lowcost[]和closest[]置初值
{ lowcost[i]=g.edges[v][i];
closest[i]=v;
}
for (i=1;i<g.n;i++) //构造n-1条边
{ min=INF; k=-1;
for (j=0;j<g.n;j++) //在(V-U)中找出离U最近的顶点k
if (lowcost[j]!=0 && lowcost[j]<min)
{ min=lowcost[j];
k=j; //k为最近顶点的编号
}
printf( 边(%d,%d),权值为%d ,closest[k],k,min);
lowcost[k]=0; //标记k已经加入U
for (j=0;j<g.n;j++) //修正数组lowcost和closest
if (g.edges[k][j]!=0 && g.edges[k][j]<lowcost[j])
{ lowcost[j]=g.edges[k][j];
closest[j]=k;
}
}
}
普里姆算法中有两重for循环,所以时间复杂度为O(n2),其中n为图的顶点个数。由于与e无关,所以普里姆算法特别适合于稠密图求最小生成树。

阅读全文

与普里姆算法适合构造稠密图相关的资料

热点内容
记住这次提到党的命令 浏览:982
电影服务器怎么搭建 浏览:766
单片机传送数据到电脑 浏览:685
预编译获得元数据 浏览:268
misuo手机u盘文件加密软件 浏览:726
标准日本语中级pdf 浏览:294
创建文件夹总显示管理员 浏览:164
免费pdf转换word在线 浏览:40
以太坊app如何操作 浏览:825
图片是怎么保存在服务器上的 浏览:159
单片机音乐ic 浏览:581
怎样才可以让相册加密码 浏览:436
linux下剪切命令 浏览:792
工作电脑加密管理 浏览:431
android目录权限设置 浏览:232
bat存入文件夹 浏览:706
服务器云端软件是什么架构 浏览:703
热血传奇喊话命令 浏览:884
pic单片机反汇编 浏览:398
boa支持php 浏览:820