最小生成树之Prim算法的学习心得与个人总结

本文分享了作者学习Prim算法构建最小生成树的心得体会,指出从错误的学习方法中吸取教训,建议先理解算法原理再进行实践。文中详细解释了Prim算法的过程,包括二维数组和两个一维数组的作用,并提供了一个Prim算法模板的例子。
摘要由CSDN通过智能技术生成

最小生成树之Prim算法的学习心得与个人总结

最小生成树:MST

 

从4.24到今天5.4(除去29,30,1三天假期),完成了hdu1162 , hdu1102 , hdu3371 , hdu1233 , hdu1879 , hdu1301 , hdu1864 。由于我的入手学习方法错了,导致花的时间比较长,效率低。错误方法是看完白书和黑书直接做模板题,导致了对算法细节的理解一塌糊涂。建议应该先看各种博文,理解模板每一步的意义,再做题。此处感谢TZL对我及时的批评和建议,受用无穷。

 

现在谈一下最小生成树之Prim算法。这个算法是对图中的点进行贪心,从起始点开始,到图中个点的边权值最小的纳入最小生成树集合中的过程。算法中涉及到了一个二维数组和两个一维数组,其中这两个一维数组意义重大,曾一度搞得我把算法改的一塌糊涂。

二维数组map[ a ][ b ] :存储从点a到点b的边的权值。

一维数组low[ i ] :存储记录顶点集合T'中各顶点距离到顶点集合T中最小的边的权值。这时,从起始点与for循环中到达的点i一起进行贪心,与起始点和i点相连的路径中权值最小将存进low[i]。我一开始理解成当前点所连接的边的最小权值。这是不全面的。

一维数组v[i] :记录顶点集合T'中各顶点距离到顶点集合T中哪个顶点距离最近。类型可以选择int 或者bool 。对应的值时0,1 或者true,false 。当v[i] = 1 / true 时,表示点i属于集合T 。

根据个人习惯或者题目要求,一般选择从点1或者

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值