作业1 最小生成树

1.问题

生活中最小生成树的应用十分广泛,比如:要连通n个城市需要n-1条边线路,那么怎么样建设才能使工程造价最小呢?
可以把线路的造价看成权值求这几个城市的连通图的最小生成树。求最小造价的过程也就转化成求最小生成树的过程,则最小生成树表示使其造价最小的生成树。

最小生成树:一个有 n 个结点的连通图的生成树是原图的极小连通子图,且包含原图中的所有 n 个结点,并且有保持图连通的最少的边。
分别用 kruskal(克鲁斯卡尔)算法和prim(普里姆)算法求出。

2.解析

Prim算法------“贪心算法”
“贪”:每一步都要最好的。
“好”:权重最小的边
约束条件:
1.只能使用图里面的边
2.只能正好使用V-1条边
3.不能有回路l
Prim算法

  1. 任选一个节点,假设从A开始
    在这里插入图片描述
    在这里插入图片描述
  2. 选中图中距离树最近但是还没被选中的顶点,保证不构成回路:如下图依次选中(A,F)(F,B)(B,D)(D,E)(B,C)在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    3.最终,构成最小生成树

在这里插入图片描述
Kruskal算法
将所有边按照权值的大小进行升序排序,然后从小到大一一判断,条件为:如果这个边不会与之前选择的所有边组成回路,就可以作为最小生成树的一部分;反之,舍去。直到具有 n 个顶点的连通网筛选出来 n-1 条边为止。筛选出来的边和所有的顶点构成此连通网的最小生成树。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值