最小生成树

3 篇文章 0 订阅
1 篇文章 0 订阅

构造成连通网的最小代价生成树(MinimumCostSpanningTree)称为最小生成树(简称MST)。

  • 最小化生成树的构造方法
  • 普利姆(Prim)算法
  • 克鲁斯卡尔(Kruskal)算法

Prim算法

思想

  • G=(V,E)是具有n个顶点的连通图,设U是最小生成树中顶点的集合,TE是最小生成树中边的集合;
  • 初始,U={u1},TE={ }
  • 重复执行:
    在所有u∈U,v∈V-U的边(u,v)中寻找代价最小的边(u’,v’),并纳入集合TE中;
    同时将v’纳入集合U中;
  • 直至U=V为止。
  • 集合TE中必有n-1条边
    在这里插入图片描述
    普利姆算法的时间复杂度为O(n2),与网中的边数无关,因此适用于求边稠密的网的最小生成树。

Kruskal算法

思想
使用贪心准则,从剩下的边中选择具有最小权值且不会产生环路的边加入到生成树的边集中。
在这里插入图片描述
基本操作:

  • 确定权值最小的边
  • 判断一条边所关联的两个顶点是否在一个联通分量中;
  • 如果不是则合并两个顶点所属的连通分量

Prim算法

  • 算法时间复杂度:O(n2)
  • 与边的个数无关
  • 适合于求边稠密的图的最小生成树

Kruskal算法

  • 算法时间复杂度:O(e loge) e为图边的数目
  • 适合于求边稀疏的图的最小生成树
  • 12
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值