- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
·Prim实现: void init() { cinn; memset(a,10,sizeof(a)); for(int i=1;i=n;i++) { vis[i]=false; for(int j=1;j=n;j++) cina[i][j]; } } void MST_Prim(int s) { memset(dis,10,sizeof(dis)); for(int i=1;i=n;i++) dis[i]=a[s][i]; memset(vis,0,sizeof(vis)); vis[s]=1;sumn=0; Kruskal实现(*并查集) #includecstring #includeiostream #includealgorithm using namespace std; struct egde { int start,end; int v; }e[200010]; bool mycmp(egde a,egde b) { return a.vb.v; } int father[2100]; int getfather (int v) { if (father[v]==v) return v; father[v]=getfather(father[v]); return father[v]; } bool merge(int x,int y) { int fatherX,fatherY; fatherX=getfather(x); fatherY=getfather(y); father[fatherX]=fatherY; } 练习题: OJ: P1221-P1225(MST) P1697-P1699(并查集) /changshappt MST——最小生成树 图论: :Minimum Spanning Tree 感谢:吴景岳、汪汀两位神犇和老师的论文及PPT支持! by:真·牛玉鑫 内容: * 关键点1:MST理论初步 关键点2:求MST的普瑞姆算法(Prim) 关键点3:求MST的克鲁斯卡尔算法(Kruskal) 1)最小生成树定义 b c h i f a e d g 4 8 8 1 2 4 14 7 9 10 6 7 2 11 对于一个无向连通图G=(V,E),其中V是顶点集合,E是边的集合,对于E中每一条边(u,v),都有一个权值w(u,v)。在其中找出一个无回路的子集T(属于E),它连接了所有的顶点,且其权值之和最小。因为T无回路且连接所有的顶点,所以它必然是一棵树,这就是生成树(spanning tree)因为它从图G当中“生成”。 我们把确定树T的问题称为求最小生成树问题。 ·由图G=(V,E)生成 ·包含G中所有的点|V|,以及|V|-1条边 ·无环,联通,权值和最小 * ·环属性:一棵生成树上,增加一条边e,再删除e所在环上的最大边,如果e不是最大边,则会得到另一棵“更好”的生成树。 -----算法原理 9 4 * -----算法原理 ·剪切属性:在图中,剪切将顶点划分成两个不相交集合。交叉边为这些顶点在两个不同集合的边。对于任何一个剪切,各条最小的交叉边都属于某个MST,且每个MST中都包含一条最小交叉边。 7 4 9 * MST其他理论 最小边原则:图中权值最小的边(如果唯一的话)一定在最小生成树上。 MST唯一性:一棵生成树上,如果各边的权都不相同,则最小生成树是唯一的。反之不然。 * 核心思想: 贪心策略:加入后仍形成树,且耗费最小 始终保持树的结构——(Kruskal算法是森林) (二):普瑞姆算法(Prim) 设图G =(V,E),其生成树的顶点集合为U。??????? ①、把v0放入U。??????? ②、在所有u∈U,v∈V-U的边(u,v)∈E中找一条最小权值的边,加入生成树。??????? ③、把②找到的边的v加入U集合。如果U集合已有n个元素,则结束,否则继续执行②。??????? 时间复杂度:O(n^2) ·Prim过程描述 ·分析 从单一顶点的树T开始 不断加入耗费最小的边(u, v),使T∪{(u, v)}仍为树(剪切属性) 上一步中的u、v有一个已经在T中,另一个不在T中 ·Prim算法的效率 Prim算法的性能取决于如何选取下一个适合条件的最小权值边,因为最小生成树必定有V-1个边,因而选取操作必须进行V-1次。 常用方法:邻接矩阵线性扫描。时间为O(V^2) 标记集合:设置一个数组vis(i=1,..,n),初始值为 0,代表对应顶点不在集合中。 图用邻接矩阵存
您可能关注的文档
- MBA管理信息系统_5-6管理信息系统的系统的设计与实施.ppt
- MCNP使用说明.ppt
- melitz 2003 chinese version with deduction.doc
- MCS的操作.ppt
- Memcache客户端注册与使用.pptx
- M8Unit 2 I was trying to pick it up when it bit me again..ppt
- MDS服务器StorNext文件系统标准安装文档.doc
- MES可以为制造企业解决什么问题.doc
- Melitz2003年奠基之作,中文翻译.doc
- Mayfield头部固定及牵开系统安装说明.ppt
- 2023-2024学年广东省深圳市龙岗区高二(上)期末物理试卷(含答案).pdf
- 2023-2024学年贵州省贵阳市普通中学高一(下)期末物理试卷(含答案).pdf
- 21.《大自然的声音》课件(共45张PPT).pptx
- 2023年江西省吉安市吉安县小升初数学试卷(含答案).pdf
- 2024-2025学年广东省清远市九校联考高一(上)期中物理试卷(含答案).pdf
- 广东省珠海市六校联考2024-2025学年高二上学期11月期中考试语文试题.pdf
- 2024-2025学年语文六年级上册第4单元-单元素养测试(含答案).pdf
- 2024-2025学年重庆八中高三(上)月考物理试卷(10月份)(含答案).pdf
- 安徽省安庆市潜山市北片学校联考2024-2025学年七年级上学期期中生物学试题(含答案).pdf
- 贵州省部分校2024-2025学年九年级上学期期中联考数学试题(含答案).pdf
文档评论(0)