图--最小生成树(数据结构)
来源:互联网 发布:淘宝首页服务 编辑:程序博客网 时间:2024/06/05 00:17
不同城市之间修路的最小费用,即在图中找权值之和最小的极小连通子网(在连通网中找一颗生成树,最小生成树)。
Kruslal求最小生成树:
1)思路:图中所有的点自己为一个连通分量,然后从所有的边中选取一个权值最小的边,若该边对应的点在不同的连通分量里,则将点合并到同一个连通分量里,以此类推,直至所有的点都在一个连通分量里。
2)代码实现(多利用并查集算法):
//并查集模板int parent[1000];//父节点数组//图中有n个点void Init(int n){ for(int i = 0;i < n; ++i) { //初始化,每个点的父亲节点都是它自身 parent[i] = i; }}//查询某个点的父节点int Find(int n){ if(n == parent[n]) return n; else { int y = Find(parent(n)); parent[n] = y; return y; }}//合并两个连通分量到一个连通分量里void Union(int a,int b){ int aa = Find(a); int bb = Find(b); if(aa == bb) return ; else { //靠左原则 parent[b] = aa;//把b的父节点设置为aa }}
- Prim算法求最小生成树
1)思路:设U为已并入最小生成树中的顶点集合,最初任选一点放入U,之后找到U到V-U中的最小边,将对应新顶点并入,共N-1轮即可。从顶点U0开始,令U={U0},初始化U0到各顶点的距离,{找最小边输出,并入新顶点,赋0更新表使U到U-V距离更小},重复n-1次。
2)代码实现:
#define MAXINT 0x3f3f3f3fint map[n][n],low[n],visited[n];//map数组存点和点之间的距离,low数组存每两个点之间的最小距离,visited数组标记某个点是否被访问int prim(){ int i,j,pos,min,result = 0; memset(visited,0,sizeof(visited)); pos = 1;//pos是当前选的某个点,最开始选第一个点 //给low数组赋值 for(i = 1;i <= n; ++i) { if(pos != i) low[i] = map[pos][i]; else low[i] = 0; } visited[1] = 1; //假设从第一个点开始 for(i = 1; i < n; ++i) { min = MAXINT; //未访问过的点里,找到最小权值并记录位置 if(visited[i] == 0 && min > low[i]) { min = low[i]; pos = i; } //最小权值累加 result += min; //标记该点 visited[pos] = 1; //更新权值 for(j = 1;j <= n; ++j) { if(j != pos) low[j] = map[pos][j]; else low[j] = 0; } }}
(数据结构PPT上的代码看不太明白,从网上找的代码,勉强能懂,还要再看)。
阅读全文
0 0
- 图--最小生成树(数据结构)
- 数据结构 图 最小生成树
- 数据结构--图--最小生成树
- 最小生成树(数据结构)
- 数据结构(最小生成树)
- 【数据结构】最小生成树
- [数据结构]最小生成树
- [数据结构]最小生成树
- 数据结构---最小生成树
- 数据结构--图--最小生成树(Prim算法)
- 数据结构:图的最小生成树prim
- 数据结构-图-最小生成树_Prim
- 数据结构之 图的最小生成树
- 数据结构 最小生成树(普里姆算法)
- 数据结构--最小生成树(Prim算法)
- 数据结构:最小生成树(Prim算法)
- 数据结构:最小生成树(Kruskal)
- 数据结构之最小生成树
- php excel文件导出之二 图像导出
- charles使用教程
- 利用select接收串口数据 亲测可用小demo
- 配置本地yum源
- BZOJ1823 [JSOI2010]满汉全席
- 图--最小生成树(数据结构)
- 缓存技术:Redis与Memcached对比
- 关于JAVA的redis客户端的实现
- 使用word 2013 发布csdn博客
- 往数据库里插入时间数据时,时间自动减少了14h
- HeadFirst设计模式总结_第四章工厂模式
- lombok @EqualsAndHashCode 注解的影响
- oracle学习笔记 锁基础原理
- Normal Equations 的由来与推导