最小生成树:Prim算法
来源:互联网 发布:源码怎么用 编辑:程序博客网 时间:2024/06/04 01:17
Prim算法
首先第一个问题,什么是最小生成树?
最小生成树(代价之和最小的生成树)
构造准则:——尽可能用网络中权值最小的边;
——必须使用且仅使用n-1 条边来联结网络中的n 个顶点;
——不能使用产生回路的边。
代码如下:
#include <iostream>#include <cstring>using namespace std;const int INF = (1 << 30);const int maxn = 100;int g[maxn][maxn];int low[maxn], adj[maxn];void prim(int u){}int main(){ int n, m, u, v, w, sum = 0; cin >> n >> m; for(int i = 0; i < maxn; i++) for(int j = 0; j < maxn; j++) g[i][j] = INF; for(int i = 0; i < maxn; i++){ low[i] = INF; adj[i] = 0;} for(int i = 0; i < m; i++) {cin >> u >> v >> w; g[v][u] = g[u][v] = w; } low[u = 0] = 0; adj[0] = -1; int t = n; while(--t){ for(v = 0; v < n; v++) if(adj[v] != -1 && g[u][v] < low[v]) { adj[v] = u; low[w = v] = g[u][v]; } for(v = 0; v < n; v++) if(adj[v] != -1 && low[v] < low[w]) w = v; adj[u = w] = -1; } for(int i = 0; i < n; i++) cout << low[i] << " ";}
阅读全文
0 0
- Prim最小生成树算法
- 最小生成树Prim算法
- 最小生成树Prim算法
- 最小生成树----Prim算法
- 最小生成树Prim算法
- Prim 最小生成树算法
- 最小生成树:Prim算法
- Prim算法 ----最小生成树
- 最小生成树-prim 算法
- 最小生成树(prim算法)
- 最小生成树 prim算法
- 最小生成树 prim算法
- Prim最小生成树算法
- 最小生成树prim算法
- 最小生成树--prim算法
- 最小生成树Prim算法
- 最小生成树(Prim算法)
- 最小生成树----Prim算法
- eclipse activiti插件安装办法
- 腾讯首席工程师:程序员成长之道
- 浅谈Java内存模型、并发、多线程
- JAVAEE开发接入微信公众号接口初解(1)
- Oracle之 11gR2 RAC 修改监听器端口号的步骤
- 最小生成树:Prim算法
- 自己用的C#基础学习笔记(二)——C#面向对象(1)
- 程序员面试失败的原因
- SVG精髓-笔记与实践
- RocketMQ原理解析-broker 4.HA & master slave
- BouncyCastle使用
- 数据结构与算法学习总结-线性表基础
- Ubuntu 16.04 常用软件安装命令
- 生成一段号段的mac