贪心法——C语言实现最小代价生成树

本文介绍了在网络图论中寻找最小代价生成树的两种经典算法——普里姆算法与克鲁斯卡尔算法。普里姆算法通过迭代选择与已构建部分相连且权值最小的边来逐步构建生成树;而克鲁斯卡尔算法则是对所有边进行排序,逐个检查加入是否会产生回路,直至完成生成树的构建。
摘要由CSDN通过智能技术生成

【最小代价生成树】

无向连通图G:含n个顶点

若G存在由n-1条边连通n个顶点的子图G',则称G'为G的一棵生成树。

若G的每一条边都赋了一个权值,则称此图为网络。

最小代价生成树:在一个网络的各种生成树中,具有最小代价的生成树。

【普里姆算法】

设网络G={ V,E },V={ 0,1,2,3,…,n-1 },设U为V的子集(初始U为空集);

然后从集合V-U中找出一个顶点x;

该顶点x与集合U中的某点之间的边是最小权边且不会造成回路;

然后将顶点x加入集合U中;

反复执行同样的步骤,直到U=V为止。

【克鲁斯卡尔算法】

将所有边按权值由小到大排序,然后从权值最小的边开始选起,构架最小生成树,若加入的边会造成回路则舍弃不用,直到所有边被挑完为止。

未完待续…

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值