什么是克鲁斯卡尔算法?
克鲁斯卡尔算法是一种用于求解最小生成树的算法,它是由克劳德·克鲁斯卡尔于1847年提出的。算法的基本思想是:首先将图中所有的边按权值从小到大排序,然后依次加入边,如果加入后不会形成环,则将其加入到最小生成树中。如果加入后会形成环,则舍去该边。这样重复直到所有边都被考虑过或者最小生成树中有n-1条边时终止。
下面是一个简单的克鲁斯卡尔算法示例,它使用了一个含有6个顶点的无向图:
首先将图中所有的边按权值从小到大排序。边的权值分别为:(1,2,3),(1,3,4),(2,4,5),(3,4,6),(4,5,2),(5,6,1)。
从最小边(1,2,3)开始,将其加入到最小生成树中。
继续考虑下一条边(1,3,4),发现加入后不会形成环,故将其加入到最小生成树中。
继续考虑下一条边(2,4,5),发现加入后不会形成环,故将其加入到最小生成树中。
继续考虑下一条边(3,4,6),发现加入后不会形成环,故将其加入到最小生成树中。
继续考虑下一条边(4,5,2),发现加入后不会形成环,故将其加入到最小生成树中。
继续考虑下一条边(5,6,1),发现加入后不会形成环,故将其加入到最小生成树中。
最小生成树已经形成,权值和为16,最小生成树的边为:(1,2,3),(1,3,4),(2,4,5),(3,4,6),(4,5,2),(5,6,1)
这只是一个简单的例子,实际情况中图可能会更复杂。
转载说明:本文部分内容引用自电脑监控软件https://www.vipshare.com/archives/10952,转载请提供出处
什么是克鲁斯卡尔算法?相关推荐
- 无向图的最小生成树(克鲁斯卡尔算法 Kruskal)
引子: 克鲁斯卡尔算法的作用是:构建图的最小生成树. 克鲁斯卡尔算法 Kruskal的构造过程: 1.初始化图:n个顶点,n个连通分量(如果两个顶点的连通分量相同,表示两点在同一个连通图中).把所有的 ...
- 贪心算法(Greedy Algorithm)最小生成树 克鲁斯卡尔算法(Kruskal#39;s algorithm)
克鲁斯卡尔算法(Kruskal's algorithm)它既是古典最低的一个简单的了解生成树算法. 这充分反映了这一点贪心算法的精髓.该方法可以通常的图被表示.图选择这里借用Wikipedia在.非常 ...
- 数据结构图之二(最小生成树--克鲁斯卡尔算法)
[1]克鲁斯卡尔算法 普里姆算法是以某顶点为起点,逐步找各顶点上最小权值的边来构建最小生成树. 克鲁斯卡尔算法是直接以边为目标去构建. 因为权值是在边上,直接去找最小权值的边来构建生成树也是很自然的想 ...
- 求最小生成树-Kruskal(克鲁斯卡尔算法)
克鲁斯卡尔算法时间复杂度与排序算法sort有关,适合于稀疏图. #include <iostream> using namespace std; #define Maxsize 100 t ...
- prim算法求最小生成树_克鲁斯卡尔算法(Kruskal算法)求最小生成树
上一节介绍了求最小生成树之普里姆算法.该算法从顶点的角度为出发点,时间复杂度为O(n2),更适合与解决边的绸密度更高的连通网.本节所介绍的克鲁斯卡尔算法,从边的角度求网的最小生成树,时间复杂度为O(e ...
- 最小生成树(普里姆算法【Prim】与克鲁斯卡尔算法【Kruskal】)
写在前面:博主是一位普普通通的19届双非软工在读生,平时最大的爱好就是听听歌,逛逛B站.博主很喜欢的一句话花开堪折直须折,莫待无花空折枝:博主的理解是头一次为人,就应该做自己想做的事,做自己不后悔的事 ...
- JavaScript实现kruskal克鲁斯卡尔算法(附完整源码)
JavaScript实现kruskal克鲁斯卡尔算法(附完整源码) DisjointSetItem.js完整源代码 DisjointSet.js完整源代码 Comparator.js完整源代码 Sor ...
- 一步一步写算法(之克鲁斯卡尔算法 中)
一步一步写算法(之克鲁斯卡尔算法 中) 原文:一步一步写算法(之克鲁斯卡尔算法 中) [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 前面说到 ...
- 【数据结构】图的应用(普利姆算法、克鲁斯卡尔算法、迪杰斯特拉算法、弗洛伊德算法、拓扑排序)
最小生成树 什么是最小生成树 是一棵树 - 无回路 - |V|个顶点一定有|V|-1条边 是生成树 - 包含全部顶点 - |V|-1条边全在图里 贪心算法 什么是"贪":每一步都要 ...
- 最小生成树之克鲁斯卡尔算法 ( java版)
1 图数据如下 二 Java代码 package leaning.graph;import java.util.ArrayList; import java.util.List;import lea ...
最新文章
- GPRS的工作原理、主要特点
- 如何理解clone对象
- 【51Nod - 1279】 扔盘子(思维)(on-p会超时)
- java中如何使用add方法_使用Java中的Calendar.add()方法将秒添加到当前日期
- 你还在用 Date?建议使用 LocalDateTime 了!
- 高通的快充协议_高通QC5.0快充发布:百瓦级时代,高通被国产厂商牵着鼻子走了?...
- 奇异值分解(SVD)详解
- 利用Word2010在博客园发布文章入门
- php图片反色特效,PHP实现对图片的反色处理功能【测试可用】
- linux-arm下如何开启tftp传输,linux-arm间tftp命令的安装、使用
- 卡巴斯基正版半年注册码申请
- 百度推出新版团购导航 对团购导航造成冲击
- 基于内容推荐算法详解(比较全面的文章)
- 使用springboot+vue+element-ui模仿蓝墨云班课
- 11个值得珍藏的4K高清壁纸网站推荐
- vueh5调用摄像头拍照_HTML5调用摄像头实现拍照功能(兼容各大主流浏览器)
- 快速入门开发实现订单类图片识别结果抽象解析
- 电脑播放器哪个最好用
- gdkoi 2023
- 计算机类一级学术刊物、核心刊物列表及简介