- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Prim算法和Kruskal算法的最小生成树优化研究
摘要:文章从目前最常见的两种在图最小生成树算法,即Prim和Kruskal算法,展开了阐述和分析,运用了大量的数据和实例对这两种计算方法进行了分析和研究。通过试验并对Prim算法进行改进,从图中每个顶点的度数入手,采取删除某些无用边的思想方法,给出了一个寻找最小生成树的算法,使其能动态调整自身的性能,既适合于稠密图,又适合于稀疏图。
关键词:Prim算法;最小生成树;Kruskal算法
中图分类号:TP312文献标识码:A文章编号:1007-9599 (2010) 03-0095-02
Research Minimum Spanning Tree Based on Prim Algorithm
Li Xianyu
(Zhaoqing Institute of Science and Technology Information Technology Engineering,ZhaoQing526020,China)
Abstract:In the minimum spanning tree algorithm of graph,Prim and Kruskal algorithm are respectively applied to dense graph and sparse graph. But both cannot dynamically regulate their own capability based on peak number, edge number and edge distribution.Prim starts from the degree of the vertex and then delete some useless edges from the graph.Therefore, improvement on the Prim algorithm,enabling it dynamically regulates its capability, Can be applied to both dense graph and sparse graph.
Keywords:Prim algorithm;Minimum spanning tree;Kruskal algorithm
最小生成树是数据结构中图的一种重要应用,它的要求是从一个带权无向完全图中选择n-1条边并使这个图仍然连通(也即得到了一棵生成树),同时还要考虑使树的权最小。为了得到最小生成树,人们设计了很多算法,最著名的有prim算法和kruskal算法。
一、PRIM算法:
与Dijstra算法类似,具体操作是:从图中任意一个顶点开始,首先把这个顶点包括在MST里,然后在那些其一个端点已在MST里,另一个端点还不是MST里的边,找权最小的一条边,并把这条边和其不在MST里的那个端点包括进MST里。如此进行下去,每次往MST里加一个顶点和一条权最小的边,直到把所有的顶点都包括进MST里。以上代码中的minVertex函数,可用最小堆等方式实现。任取一个顶点加入生成树,然后对那些一个端点在生成树中,而另一个端点不在生成树中的边进行排序,取权值最小的边,将它和另一个端点加进生成树中。重复步骤直到所有顶点都加进了生成树。
首先我们对于一个样例来分析:
4
0 16 8 9
16 0 3 6
8 3 0 10
9 6 10 0
我们有两个集合来操作:
然后随便从右边的集合中拿出一个数到左边的集合来,并搜出它与其他的点所有连线的值。
从图中可以看到1到3的距离是最短的,所以8一定为最小生成树中的一段,所以我们将3放入左边的集合,然后把8这个数加到ans里面去。并用3到右边的集合中的点的距离去刷新1到右边集合的点的距离。
所以我们第二次就取3-2的距离为3,加到ans里面,然后把2拿过来,再刷新距离。
然后ans加6,再把4从右边的集合给拿过来,这是右边集合空了,PRIM结束。ans=8+3+6=17最小生成数为:
如上图所示,假设E是图中边的集合,V是图中的顶点的集合,TE为最小生成树中的边的集合,则prim算法可以通过以下步骤实现最小生成树:
(一)首先初始化TE={0},U={u 0}。此步骤设立一个初始行态――即只有结点u 0的结点集U和一个空的边集TE作为最小生成树的,在后面的算法执行过程中,这种行态会不断的发生变化,直到生成最小生成树,循环终止。
(二)在所有u∈U,v∈V-U的边(u,v)∈E中,搜索一
您可能关注的文档
最近下载
- 匹克球理论考试试题库及答案.docx VIP
- 一+职场应用写作与交流(一):求职和应聘(教学设计)-【中职专用】高二语文上(高教版2023职业模块).docx
- 一 《微写作•描述事物》(教学课件)-【中职专用】高二语文同步精品课堂(高教版2023·职业模块).pptx VIP
- 新疆天泽水利投资发展有限公司招聘考试真题2024.docx VIP
- 匹克球运动 场地的使用要求及检验方法.pdf VIP
- 第十一章第一节《杠杆》实验教学说课稿教科版物理八年级下册.ppt
- TUNP-卧式操纵盘离心爆珠在线植入设备.pdf VIP
- 草布、衣服、床单被服洗涤服务方案.docx
- 2024年新疆天泽水利投资发展有限公司招聘真题.docx VIP
- 高标准农田鱼眼泡低洼地治理方案.docx
文档评论(0)