最小生成树算法——Kruskal算法
来源:互联网 发布:sql修复工具 编辑:程序博客网 时间:2024/06/10 01:57
Kruskal算法是求加权连通图中最小生成树的算法。该算法将一个连通图中的边权从小到大排列,然后每次选取边权最小的点,用并查集将几个点合并成一个集合,直到找到第n-1条边为止。
该算法是贪心思想的具体应用,时间复杂度主要取决于排列图中边权所使用的排序算法。
代码如下:
bool cmp(const int x,const int y)//排序规则 { return w[i] < w[j];}int find(int x)//并查集查找函数 { if(p[x] == x)return x; return find(p[x]);}int kruskal(){ int ans=0; for(int i = 0;i < n;++i)p[i] = i; for(int i = 0;i < m;++i)r[i] = i; sort(r,r+m,cmp);//排序边权 for(int i = 0;i < m;++i) { int e = r[i];//边权编号 int x = find(u[e]); int y = find(v[e]);//两端端点编号 if(x != y) { ans += w[e]; p[x] = y; } //如果分属于两个不同集合,则合并 } return ans; }
0 0
- 最小生成树——Kruskal算法
- 最小生成树算法——Kruskal
- 最小生成树——Kruskal算法
- 最小生成树——Kruskal算法
- 最小生成树——Kruskal算法
- 最小生成树——Kruskal算法
- 最小生成树—Kruskal 算法
- 算法——最小生成树:Kruskal算法、Prim算法
- 最小生成树算法—Kruskal算法和Prim算法
- 最小生成树算法——Kruskal算法Java实现
- 最小生成树——Kruskal算法 和 Prim算法
- 最小生成树算法——Kruskal算法
- 最小生成树—kruskal算法和prim算法
- 最小生成树—Prim算法和Kruskal算法
- 最小生成树—Prim算法和Kruskal算法 (理解)
- C# 生成最小生成树——kruskal算法
- Kruskal 最小生成树算法
- 最小生成树Kruskal算法
- Android Studio 和 Unity3D 交互
- 第二周项目2--程序的多文件组织
- Android小项目之音乐播放器简易版
- stl中双向队列用法
- RIME-使用小心得
- 最小生成树算法——Kruskal算法
- A+B
- sscanf函数基本用法
- win10+ubuntu 14.04双系统安装 (UEFI)
- codeforces基础题——#362(div2)C
- numpy中mat和python的list转换
- NOIP2014 解方程
- handler.removeCallbacksAndMessages(null)
- JAVA学习随笔8