首页 > 编程语言 > 详细

最小生成树 Prim算法

时间:2015-03-26 22:22:58      阅读:383      评论:0      收藏:0      [点我收藏+]
 1 int n;
 2 int road[MAXN][MAXN];
 3 int dis[MAXN];
 4 bool vis[MAXN];
 5 int prim() {
 6     memset(vis, 0, sizeof(vis));
 7     for(int i = 0; i < n; i++) dis[i] = INF;
 8     dis[0] = 0;
 9     int ans = 0;
10     for(int i = 0; i < n; i++) {
11         int tmp = INF, idx = 0;
12         for(int j = 0; j < n; j++) {
13             if(!vis[j] && dis[j] < tmp) {
14                 tmp = dis[j];
15                 idx = j;
16             }
17         }
18         vis[idx] = 1;
19         ans += tmp;
20         for(int j = 0; j < n; j++) {
21             if(!vis[j] && dis[j] > road[idx][j]) {
22                 dis[j] = road[idx][j];
23             }
24         }
25     }
26     return ans;
27 }

 

最小生成树 Prim算法

原文:http://www.cnblogs.com/mitrenick/p/4370020.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!