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

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

适用于

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

简记:

将边按照升序排序,选取n-1条边,连通n个顶点。
添加一条边的时候,如何判断能不能添加这条边?(添加进来之后,会不会构成回路)
看标记,
和原来的标记不一样,就可以加入,
加入之后将他们的标记修改为一样的。

图解

【图论笔记】克鲁斯卡尔算法(Kruskal)求最小生成树_第1张图片
第一步:创建一个连通图,并且给每个顶点都标记上不同的颜色

第二步:选取边,选完之后C的颜色要和A相同
【图论笔记】克鲁斯卡尔算法(Kruskal)求最小生成树_第2张图片
第三步:加入边,将F的颜色改为D的蓝色
【图论笔记】克鲁斯卡尔算法(Kruskal)求最小生成树_第3张图片
第四步:加入边,将E改为紫色
【图论笔记】克鲁斯卡尔算法(Kruskal)求最小生成树_第4张图片
第五步:添加边,将F相连的节点改为绿色(包括它自己)
【图论笔记】克鲁斯卡尔算法(Kruskal)求最小生成树_第5张图片
第六步:不能加入,因为A和D的颜色一样。加入边,将原来和B相连的节点的颜色都改为绿色。完
【图论笔记】克鲁斯卡尔算法(Kruskal)求最小生成树_第6张图片

代码正在研究

你可能感兴趣的:(数据结构,图论,笔记,算法)