prime算法
void prime(void)
{
elist[i].from=1;
elist[i].to=i+1;
elist[i].w=a[1][i+1];
for (int i=1;i<=n-1;i++)
{
int m=i;
for(int j=i+1;j<=n-1;j++)
if(elist[j].w<elist[m].w) m=j;
if(m!=i)
{
edge tmp=elist[i];
elist[i]=elist[m];
elist[m]=tmp;
}
for(int j=i+1;j<=n-1;j++)
{
if(elist[j].w>a[elist[i].to][elist[j].to])
elist[j].w=a[elist[i].to][elist[j].to];
}
}
for(int i=1;i<=n-1;i++)
ans=ans+elist[i].w;
}
转载请注明原文地址: https://ju.6miu.com/read-37862.html