关于最小生成树算法

借助可视化工具分析一哈

https://visualgo.net

Kruskal(克鲁斯卡尔)算法

根据我的理解,就是每次选择一条权重最小的边,且加入这条边后不构成环路,最后组成一棵树

以下图的情形为例

  1. 初始状态

在这里插入图片描述

  1. 节点1 、 2之间权重最小,加入这条边

在这里插入图片描述

  1. 节点0 、1 与节点0 、 2之间权重都为4,加入其中一条

在这里插入图片描述

  1. 首先尝试将0 2 这条边加入,但是此时会构成回路

    选择将权重为6的边加入

在这里插入图片描述

  1. 将权重为6的节点加入,此时每个节点都访问到了,最小生成树构成。
    在这里插入图片描述

Prime算法

还是以上面的情形为例

  1. 我们一0为起始点,节点1 为节点0最少代价能到达的节点,将节点1加入
    在这里插入图片描述
    1. 此时节点2为节0 或1 节点经过最少代价能到达的节点,将节点二2加入在这里插入图片描述
  2. 此时节点0 与 节点2 之间权重最小,但是会构成回路;选择节点3加入
    在这里插入图片描述
    1. 加入节点4,所有节点都已经到达,构成树
      在这里插入图片描述

放一个伪代码
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值