求最小生成树-Kruskal(克鲁斯卡尔算法)
克鲁斯卡尔算法时间复杂度与排序算法sort有关,适合于稀疏图。
#include <iostream>
using namespace std;
#define Maxsize 100
typedef char VertexType;
typedef int EdgeType;
typedef struct{VertexType Vex[Maxsize];EdgeType edge[Maxsize][Maxsize];int vexnum,arcnum;
}MGraph;
typedef struct{int a,b; //a、b为一条边的两个顶点int w; //w为边的权值
}Road;
Road road[Maxsize];
int v[Maxsize]; //定义并查集数组 int getRoot(int a){ //在并查集中查找根结点 while(a!=v[a])a=v[a];return a;
}void Kruskal(MGraph G,int &sum,Road road[]){int i,N,E,a,b;N=G.vexnum;E=G.arcnum;sum=0;for(i=0;i<N;i++)v[i]=i;sort(road,E); //对road数组中的E条边按其权值从小到大排序for(i=0;i<E;i++){a=getRoot(road[i].a);b=getRoot(road[i].b);if(a!=b){ //不在一个集合中 v[a]=b; //合并两棵树sum+=road[i].w; //求生成树权值 }}
}
求最小生成树-Kruskal(克鲁斯卡尔算法)相关推荐
- prim算法求最小生成树_克鲁斯卡尔算法(Kruskal算法)求最小生成树
上一节介绍了求最小生成树之普里姆算法.该算法从顶点的角度为出发点,时间复杂度为O(n2),更适合与解决边的绸密度更高的连通网.本节所介绍的克鲁斯卡尔算法,从边的角度求网的最小生成树,时间复杂度为O(e ...
- 无向图的最小生成树(克鲁斯卡尔算法 Kruskal)
引子: 克鲁斯卡尔算法的作用是:构建图的最小生成树. 克鲁斯卡尔算法 Kruskal的构造过程: 1.初始化图:n个顶点,n个连通分量(如果两个顶点的连通分量相同,表示两点在同一个连通图中).把所有的 ...
- 算法笔记【1】 Kruskal - 克鲁斯卡尔算法
Kruskal - 克鲁斯卡尔算法求最小生成树 本次所介绍的克鲁斯卡尔算法,从边的角度求网的最小生成树时间复杂度为O(NlogN).和普里姆算法恰恰相反,更适合于求边稀疏的网的最小生成树. 对于任意一 ...
- JavaScript实现kruskal克鲁斯卡尔算法(附完整源码)
JavaScript实现kruskal克鲁斯卡尔算法(附完整源码) DisjointSetItem.js完整源代码 DisjointSet.js完整源代码 Comparator.js完整源代码 Sor ...
- 数据结构——最小生成树之克鲁斯卡尔算法(Kruskal)
最小生成树算法 prime算法和克鲁斯卡尔算法 克鲁斯卡尔算法 思路 优先队列+并查集 Kuskal算法 [算法简介]:上一篇中的Prime算法是一种"加点式的算法",而Kuska ...
- (浙大-19-夏-数据结构)Prim(普里姆算法)和Kruskal(克鲁斯卡尔算法)最小生成树
Prim最小生成树算法(贪心算法) 最小生成树的性质: 一棵树 没有回路 n 个顶点含有 n - 1 条边 生成树 所有顶点都在里面 n - 1 条边都在图中 边的权重最小 在生成树的图中任意加一条边 ...
- 最小生成树之Kruskal克鲁斯卡尔算法
[图的最小生成树]之kruskal 目录 前言 一.什么是最小生成树 二.greedy algorithm贪婪算法和kruskal克鲁斯卡尔 1.greedy algorithm贪婪算法 2.krus ...
- 最小生成树之克鲁斯卡尔算法 ( java版)
1 图数据如下 二 Java代码 package leaning.graph;import java.util.ArrayList; import java.util.List;import lea ...
- 最小生成树(克鲁斯卡尔算法 普里姆算法)
最小生成树是处理图结构中,简化图的算法:即删除一些边使得图得以简化,但应保证图中任意点都是相连通的.形成的最小生成树应该使得从顶点遍历时走过边的权值和最小.(有n个节点,则最小生成树的边数应为n-1) ...
- 最小生成树之克鲁斯卡尔算法
目录 前言 一.克鲁斯卡尔算法构造过程 二.算法实现 1.辅助结构体.数组 2.算法核心 3.排序函数 总结 前言 承接上文普里姆算法,这里的克鲁斯卡尔算法是解决最短联通路径的另一种算法,细节就不多概 ...
最新文章
- 北京大学北京天然气水合物国际研究中心招聘生信博后
- Hibernate反向生成映射文件点击Hibernate reserve Engineering的时候没反应的解决方法
- selenium linux 谷歌浏览器,在Linux平台上无法通过Jenkins中的Selenium启动Chrome浏览器...
- mysql执行计划_mysql的sql执行计划详解
- 类的成员函数与内联以及静态成员
- Oracle+BEA后的ESB
- Django(模板语言-自定义filter和simple_tag)
- 14年百度深度学习校招题目
- Android Glide图片加载框架(二)源码解析之with()
- 【OpenCV 例程200篇】100. 自适应局部降噪滤波器
- 跳槽和求职 ,10条掏心建议
- ubuntu 18.04下安装Java
- 22. C# -- 抽象类和接口
- 教你如何解决JS/TS里特定String进行拆分然后遍历各个元素
- HTML中浮动的特性,浅谈CSS浮动的特性
- r语言 小树转化百分数_魅力语言小课堂|绕口令《说日》
- ocr小白入门CRNN
- IIR数字程控滤波器
- C++ - 线程安全的std::cout
- Ztmao主题猫wordpress主题经典失传版/WP网站模板下载站源码+全局SEO功能设定