图论-最小生成树-Prim

来源:互联网 发布:matlab编程证明克拉默 编辑:程序博客网 时间:2024/05/04 11:55

Prim算法,跟Dijkstra神似,都是寻找目前最短的路径向外找。
理解起来并不难,多用才能熟练。

#include <iostream>#include <algorithm>using namespace std;const int MAX_V = 100;const int INF = 1e9 + 7;int cost[MAX_V][MAX_V];int mincost[MAX_V];bool used[MAX_V];int V;int prim() {    for (int i = 0; i < V; i++) {        mincost[i] = INF;        used[i] = false;    }    mincost[0] = 0;    int res = 0;    while(true) {        int v = -1;        for (int u = 0; u < V; u++) {            if (!used[u] && (v == -1 || mincost[u] < mincost[v])) v = u;        }        if (v == -1) break;        used[v] = true;        res += mincost[v];        for (int u = 0; u < V; u++) {            mincost[u] = min(mincost[u], cost[v][u]);        }    }    return res;}int main() {    return 0;}
0 0
原创粉丝点击