最小生成树-Prim

来源:互联网 发布:猿课软件 编辑:程序博客网 时间:2024/05/01 00:14

O ( N*N )


适合于 稠密图


还没有用heap优化的代码:

int map[n][n],dis[n];bool visit[n];int prim(){    int i,j,k,min,ans;    memset(dis,INF,sizeof(dis));    memset(visit,false,sizeof(visit));    dis[1]=0;    ans=0;    for(i=1;i<=n;i++){        min=INF;        for(j=1;j<=n;j++)            if(!visit[j]&&min>dis[j]){                min=dis[j];                k=j;            }        if(min==INF)return -1; // 无法联通        ans+=min;        visit[k]=true;        for(j=1;j<=n;j++)            if(!visit[j]&&dis[j]>map[k][j])                dis[j]=map[k][j];    }    return ans;}




1 0
原创粉丝点击