您的位置:首页 > 其它

最小生成树之Prim算法

2015-07-10 21:35 176 查看
void prim()
{
memset(v,0,sizeof(v));
v[1]=1;
for(int i=1;i<=n;i++)
{
dist[i]=a[1][i];
}
int sum=0,point;
for(int i=1;i<n;i++)
{
int minn=inf;
for(int j=1;j<=n;j++)
{
if(!v[j]&&dist[j]<minn)
{
minn=dist[j];
point=j;
}
}
v[point]=1;
sum+=dist[point];
dist[point]=inf;

for(int k=1;k<=n;k++)
{
if(!v[k]&&(a[point][k]<dist[k]))
dist[k]=a[point][k];
}
}
printf("%d\n",sum);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息