算法分析与设计第一次作业

1.问题
(1)举一个实例,画出采用Prim算法构造最小生成树的过程,并编写算法。
(2)举一个实例,画出采用Kruskal算法构造最小生成树的过程,并编写算法。
2.解析
定义无向加权图的生成树代价为树中所有边的代价(权值)之和。最小代价生成树是具有最小代价的生成树。求无向连通图的最小代价生成树,这里分别应用Prim算法、Kruskal算法,这两种算法的设计技术都属于贪心法。用贪心法求解优化问题,最优解是在一系列求解步骤的最后得出的,每一步求解都在当前所有可能的选取中(按某种判据)做最优选取。对于最小代价生成树问题,目标判据为最小代价,应满足如下限定:
(1)只选图中出现的边;
(2)只选n-1条边;
(3)不选构成环路的边。
Prim算法:
任意选定开始节点可。选一条最小代价的边(u,v)加入T,使T∪{(u,v)}还是棵树,重复这样的选边以及插入过程,直到T中包括n-1条边为止。
画出最小生成树的过程实例:
在这里插入图片描述

Kruskal算法:
构造最小代价生成树T的 Kruskal算法。边按权值非递减的顺序每一次向T中加入一条边,保证每次加入的边都不构成环路。
画出最小生成树的过程实例:
在这里插入图片描述

3.设计
(1)Prim算法:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值