克鲁斯卡尔算法时间复杂度与排序算法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(克鲁斯卡尔算法)相关推荐

  1. prim算法求最小生成树_克鲁斯卡尔算法(Kruskal算法)求最小生成树

    上一节介绍了求最小生成树之普里姆算法.该算法从顶点的角度为出发点,时间复杂度为O(n2),更适合与解决边的绸密度更高的连通网.本节所介绍的克鲁斯卡尔算法,从边的角度求网的最小生成树,时间复杂度为O(e ...

  2. 无向图的最小生成树(克鲁斯卡尔算法 Kruskal)

    引子: 克鲁斯卡尔算法的作用是:构建图的最小生成树. 克鲁斯卡尔算法 Kruskal的构造过程: 1.初始化图:n个顶点,n个连通分量(如果两个顶点的连通分量相同,表示两点在同一个连通图中).把所有的 ...

  3. 算法笔记【1】 Kruskal - 克鲁斯卡尔算法

    Kruskal - 克鲁斯卡尔算法求最小生成树 本次所介绍的克鲁斯卡尔算法,从边的角度求网的最小生成树时间复杂度为O(NlogN).和普里姆算法恰恰相反,更适合于求边稀疏的网的最小生成树. 对于任意一 ...

  4. JavaScript实现kruskal克鲁斯卡尔算法(附完整源码)

    JavaScript实现kruskal克鲁斯卡尔算法(附完整源码) DisjointSetItem.js完整源代码 DisjointSet.js完整源代码 Comparator.js完整源代码 Sor ...

  5. 数据结构——最小生成树之克鲁斯卡尔算法(Kruskal)

    最小生成树算法 prime算法和克鲁斯卡尔算法 克鲁斯卡尔算法 思路 优先队列+并查集 Kuskal算法 [算法简介]:上一篇中的Prime算法是一种"加点式的算法",而Kuska ...

  6. (浙大-19-夏-数据结构)Prim(普里姆算法)和Kruskal(克鲁斯卡尔算法)最小生成树

    Prim最小生成树算法(贪心算法) 最小生成树的性质: 一棵树 没有回路 n 个顶点含有 n - 1 条边 生成树 所有顶点都在里面 n - 1 条边都在图中 边的权重最小 在生成树的图中任意加一条边 ...

  7. 最小生成树之Kruskal克鲁斯卡尔算法

    [图的最小生成树]之kruskal 目录 前言 一.什么是最小生成树 二.greedy algorithm贪婪算法和kruskal克鲁斯卡尔 1.greedy algorithm贪婪算法 2.krus ...

  8. 最小生成树之克鲁斯卡尔算法 ( java版)

    1 图数据如下 二  Java代码 package leaning.graph;import java.util.ArrayList; import java.util.List;import lea ...

  9. 最小生成树(克鲁斯卡尔算法 普里姆算法)

    最小生成树是处理图结构中,简化图的算法:即删除一些边使得图得以简化,但应保证图中任意点都是相连通的.形成的最小生成树应该使得从顶点遍历时走过边的权值和最小.(有n个节点,则最小生成树的边数应为n-1) ...

  10. 最小生成树之克鲁斯卡尔算法

    目录 前言 一.克鲁斯卡尔算法构造过程 二.算法实现 1.辅助结构体.数组 2.算法核心 3.排序函数 总结 前言 承接上文普里姆算法,这里的克鲁斯卡尔算法是解决最短联通路径的另一种算法,细节就不多概 ...

最新文章

  1. 北京大学北京天然气水合物国际研究中心招聘生信博后
  2. Hibernate反向生成映射文件点击Hibernate reserve Engineering的时候没反应的解决方法
  3. selenium linux 谷歌浏览器,在Linux平台上无法通过Jenkins中的Selenium启动Chrome浏览器...
  4. mysql执行计划_mysql的sql执行计划详解
  5. 类的成员函数与内联以及静态成员
  6. Oracle+BEA后的ESB
  7. Django(模板语言-自定义filter和simple_tag)
  8. 14年百度深度学习校招题目
  9. Android Glide图片加载框架(二)源码解析之with()
  10. 【OpenCV 例程200篇】100. 自适应局部降噪滤波器
  11. 跳槽和求职 ,10条掏心建议
  12. ubuntu 18.04下安装Java
  13. 22. C# -- 抽象类和接口
  14. 教你如何解决JS/TS里特定String进行拆分然后遍历各个元素
  15. HTML中浮动的特性,浅谈CSS浮动的特性
  16. r语言 小树转化百分数_魅力语言小课堂|绕口令《说日》
  17. ocr小白入门CRNN
  18. IIR数字程控滤波器
  19. C++ - 线程安全的std::cout
  20. Ztmao主题猫wordpress主题经典失传版/WP网站模板下载站源码+全局SEO功能设定

热门文章

  1. 发现你的身形——OpenCV图像轮廓
  2. 气象各种资料汇总(持续更新ing)
  3. js 数组 转为树形结构
  4. 我的Python分析成长之路4
  5. HTTP协议、HTTP请求方法、常见状态码、HTTP消息
  6. Linux流量监控工具 - iftop (最全面的iftop教程)
  7. py文件控制台执行时,报错:引入的模块不存在
  8. 随机取6位数字或字母方法
  9. hdu 3788 字符串
  10. ASP.NET Repeater 头模板(HeaderTemplate)和FooterTemplate模板中查找控件