最小生成树是一个连通图。什么是连通图,(强)连通图详解前面介绍了《图存储结构》,本节继续讲解什么是 连通图 。 前面讲过,图中从一个顶点到达另一顶点,若存在至少一条路径,则称这两个顶点是连通着的。例如图 1 中,虽然 V1 和 V3http://c.biancheng.net/view/3405.html

Kruskal算法的图形分析:

从下面的有权图中找出最小生成树:Kruskal算法是一种贪心算法,也是取边法,首先取出权值最小的边AC,再在剩下的边中依次取出权值最小却不会形成环的边。

①取出AC

②取出AB或者AD

③取出AB或者AD剩下的一个,上面取了AB,则取AD

④再下来最下的权值是边BC或者CD的权值为3,但当加入其中一条边回形成环,不满足,舍去,接着往下找剩下权值最小的边

⑤取出AE或者BE其中一条(直到这里就完成了,边数n为顶点数减1),这里你把AE边换成BE边也是可以的,所以说最小长生树不唯一

Kruskal算法的核心步骤:

①、权值从小到大进行排序

②、比较根结点是否相同(判断是否形成环)

对第②点进行解释一下,用辅助数组来记录每个顶点的根结点,一开始他们都是独立的一棵树,根结点是自己本身,初始值如下

当加入第一条权值最小边AC时,将终点顶点C看成时开始点顶点A的孩子,也就是C的根结点由原来指向自己到现在指向A,值由原来的2更新为0

加入第二条权值最小的边AB,B的根结点值更新为0

加入第三条权值最小的边AD,D的根结点值更新为0

在加入第四条权值最小的边BC或者CD时,其中B和C的根结点都是0,或者C和D的根结点值都是0,形成了环,所以舍去,依次下去,直到形成最小生成树为止。

接下来就是代码了:

红色方框时核心的算法

排序前的边集数组:(根据输入的顺序)

进行排序后的边集数组:

Kruskal算法求解最小生成树相关推荐

  1. ds图—最小生成树_Java: Kruskal算法生成最小生成树(邻接矩阵)

    Java: Kruskal算法生成最小生成树(邻接矩阵): package 输出: Kruskal=36: (E,F) (C,D) (D,E) (B,F) (E,G) (A,B) 分析: Java: ...

  2. CSP认证201412-4 最优灌溉[C++题解]:最小生成树裸题、Kruskal算法求最小生成树

    题目分析 来源:acwing 分析:这是一道最小生成树的裸题. 这里默写Kruskal求最小生成树的最小费用的模板. 最小生成树模板请参考笔者的另一篇博文: 最小生成树板子-AcWing 859. K ...

  3. C语言实现克鲁斯卡尔Kruskal算法求最小生成树(附完整源码)

    Kruskal算法求最小生成树 Edge结构体,Graph结构体 Kruskal算法求最小生成树完整源码(定义,实现,main函数测试) Edge结构体,Graph结构体 // a structure ...

  4. 作业1-采用Prim算法和Kruskal算法构造最小生成树

    采用Prim算法和Kruskal算法构造最小生成树 实验报告 1.问题 2.解析 (1)Prim算法 (2)Kruskal算法 3.设计 (1)Prim算法 (2)Kruskal算法 4.分析 (1) ...

  5. 证明kruskal算法求解图的最小生成树具有贪心选择性质_将并查集应用在图论中的最小生成树算法——Kruskal...

    点击上方蓝字,和我一起学技术. 今天是算法和数据结构专题的第19篇文章,我们一起来看看最小生成树. 我们先不讲算法的原理,也不讲一些七七八八的概念,因为对于初学者来说,看到这些术语和概念往往会很头疼. ...

  6. 最小生成树 kruskal_使用Kruskal算法求解Java最小生成树问题

    最小生成树 kruskal In Electronic Circuit we often required less wiring to connect pins together. We can m ...

  7. 采用Kruskal算法生成最小生成树,并采用并查集的合并优化和查询优化。

    文章目录 最小生成树 1.什么是图的最小生成树(MST)? 2.最小生成树用来解决什么问题? Kruskal(克鲁斯卡尔)算法 算法描述 图解 最小生成树 1.什么是图的最小生成树(MST)? 用N- ...

  8. 普利姆算法和克鲁斯卡尔算法求解最小生成树

    Q:最小生成树有什么用? A:譬如我要去五个城市旅游,每两个城市之间可能有路也可能没有,路的距离可能一样也可能不一样,随机从一个城市出发,我想要把每个城市走一遍,怎么样走过的路距离最短,比如我想从上海 ...

  9. Kruskal算法构造最小生成树

    问题[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)] 在一给定的无向图G = (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边(即),而 w(u, v) ...

最新文章

  1. 将php-fpm添加至service服务
  2. spring集成kafka
  3. 提升CUDA程序运行效率的几个关键点
  4. JavaScript学习笔记06【高级——JavaScript中的事件】
  5. windows:QtCreator调用库的方式
  6. Oracle意外赢官司,程序员或过苦日子
  7. 微服务启动顺序_微服务框架Demo.MicroServer运行手册
  8. 虚拟机中的linux系统无法获得ip(ifconfig命令无法查到ip)
  9. 黑马程序员c++讲义课件笔记
  10. 0基础可以考CPDA数据分析师证书吗
  11. 我要表白网HTML+CSS+JS-最浪漫的表白网页在线生成网站
  12. Android 百分比布局库(percent-support-lib) 解析与扩展
  13. ibm aix_IBM AIX设备驱动程序开发
  14. 二战企*查*查-企业-数-据爬虫
  15. 微信支付(扫码支付)微信公众平台开发教程(6)
  16. python:calendar 日历相关库
  17. 数值分析学习(一)之交叉法(Bracketing Methods)求根
  18. python之pypinyin
  19. Spring Boot 1.5.10项目引入knife4j接口文档
  20. 《Redis学习三之面试》

热门文章

  1. 【全集】大数据Java基础
  2. 2009年下半年商务英语考试(BEC)初中高级备考指南
  3. git提交远程报错解决方案
  4. 圆形电子围栏检测嵌入式C实现
  5. 【第44天】Servlet初学---编写最基本的Servlet工程的必要步骤
  6. 萌宠大作战服务器维护,萌宠大作战开服表
  7. 《大象:thinking in uml 》(第二版) 5章 UML核心模型
  8. 全球各大邮件SMTP服务限制
  9. 【商业模式学习感悟】“基于游戏 IP 的娃娃机” 新模式规划 ——中后期模式
  10. 亚马逊旺季来了,如何让快速清理库存,为爆款理清道路