prime算法

来源:互联网 发布:陶晶锅涂层有毒吗 知乎 编辑:程序博客网 时间:2024/04/30 13:21

prime算法的基本思想

1.清空生成树,任取一个顶点加入生成树

2.在那些一个端点在生成树里,另一个端点不在生成树里的边中,选取一条权最小的边,将它和另一个端点加进生成树

3.重复步骤2,直到所有的顶点都进入了生成树为止,此时的生成树就是最小生成树

int prime(int cur){    int index;    int sum = 0;    memset(visit, false, sizeof(visit));    visit[cur] = true;    for(int i = 0; i < m; i ++){        dist[i] = graph[cur][i];        }    for(int i = 1; i < m; i ++){        int mincost = INF;        for(int j = 0; j < m; j ++){            if(!visit[j] && dist[j] < mincost){                mincost = dist[j];                index = j;                }            }        visit[index] = true;        sum += mincost;        for(int j = 0; j < m; j ++){            if(!visit[j] && dist[j] > graph[index][j]){                dist[j] = graph[index][j];            }            }        }     return sum;    }
0 0