prime算法

    xiaoxiao2021-12-14  24

    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; }
    转载请注明原文地址: https://ju.6miu.com/read-971067.html

    最新回复(0)