一些算法的基本思想(适用于手动模拟)

一、最小生成树算法:

1.Prime(普里姆)算法

对于一个带权图,指定一个顶点(这个顶点可以任意指定),加入集合T(T初始为空)。选择与T相关联的权值最小的边(与T相关联的权值最小的边表示和T中任一顶点关联且权值最小),且不构成回路。选出这条边和边相关联的另一个顶点,将这个顶点加入T之后再次重复上述过程,直到所有顶点都加入T,此时所得到的树就是一颗最小生成树。

2.Kruskal(克鲁斯卡尔)算法

对于一个带权图,将其边按照权值进行排序。选择权值最小的边和相关联的两个顶点,每次选择边和顶点要注意保证所选择的边和顶点不构成回路,直到所有顶点连通构成一颗树为止。此时得到的树就是最小生成树

总结:Prime算法是从一个顶点出发,不断选择权值小的边往外延伸,直到成为一颗树为止;Kruskal算法是从边的角度,每次选择权值最小的边,最终使得所有顶点连通成为一颗树。两种算法有个共同点,就是在选择权值最小的边时都要注意已经选择出的顶点和边不能构成回路。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值