摘要:本文主要向大家介绍了 C/C++知识点之MST,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
本文主要向大家介绍了 C/C++知识点之MST,通过具体的内容向大家展示,希望对大家学习C/C++知识点有所帮助。
prim
int prim(int x,int n)
{
int sum=0;
memset(visit,false,sizeof(visit));
for(int i=1;i<=n;i++)
dis[i]=mp[x][i];
dis[x]=0;
visit[x]=true;
for(int i=1;i<=n;i++)
{
int k,mincost=INF;
for(int j=1;j<=n;j++)
if(!visit[j]&&dis[j]<mincost)
mincost=dis[k=j];
if(mincost==INF) break;
visit[k]=true;
sum+=mincost;
for(int j=1;j<=n;j++)
{
if(!visit[j]&&dis[j]>mp[k][j])
dis[j]=mp[k][j];
}
}
return sum;
}
Kruskal
int F(int x){return fat[x]==x?x:F(fat[x]);}
void join(int x,int y)
{
int fx=F(x);
int fy=F(y);
if(fy!=fx)fat[fy]=fx;
}
void kruskal()
{
for(int i=1;i<=m;i++)
{
if(k==n-1)break;
if(F(g[i].u)!=F(g[i].v))
{
join(g[i].u,g[i].v);
sum+=g[i].di;k++;
}
}
}
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标编程语言C/C+频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号