【图论笔记】克鲁斯卡尔算法(Kruskal)求最小生成树

【图论笔记】克鲁斯卡尔算法(Kruskal)求最小生成树

适用于

克鲁斯卡尔适合用来求边比较稀疏的图的最小生成树

简记:

将边按照升序排序,选取n-1条边,连通n个顶点。

添加一条边的时候,如何判断能不能添加这条边?(添加进来之后,会不会构成回路)

看标记,

和原来的标记不一样,就可以加入,

加入之后将他们的标记修改为一样的。

图解

第一步:创建一个连通图,并且给每个顶点都标记上不同的颜色

第二步:选取边<A,C>,选完之后C的颜色要和A相同

第三步:加入边<D,F>,将F的颜色改为D的蓝色

第四步:加入边<B,E>,将E改为紫色

第五步:添加边<C,F>,将F相连的节点改为绿色(包括它自己)

第六步:<A,D>不能加入,因为A和D的颜色一样。加入边<B,C>,将原来和B相连的节点的颜色都改为绿色。完

代码正在研究

相关推荐
努力变厉害的小超超8 分钟前
ArkTS中的组件基础、状态管理、样式处理、class语法以及界面渲染
笔记·鸿蒙
浮生如梦_1 小时前
Halcon基于laws纹理特征的SVM分类
图像处理·人工智能·算法·支持向量机·计算机视觉·分类·视觉检测
励志成为嵌入式工程师3 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim
捕鲸叉4 小时前
创建线程时传递参数给线程
开发语言·c++·算法
A charmer4 小时前
【C++】vector 类深度解析:探索动态数组的奥秘
开发语言·c++·算法
wheeldown4 小时前
【数据结构】选择排序
数据结构·算法·排序算法
aloha_7895 小时前
从零记录搭建一个干净的mybatis环境
java·笔记·spring·spring cloud·maven·mybatis·springboot
观音山保我别报错5 小时前
C语言扫雷小游戏
c语言·开发语言·算法
dsywws6 小时前
Linux学习笔记之vim入门
linux·笔记·学习
TangKenny6 小时前
计算网络信号
java·算法·华为