第8章 图概要1.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第8章 图概要1

for (j=0;jg.n;j++) //修改数组lowcost和closest if (g.edges[k][j]!=0 g.edges[k][j]lowcost[j]) { lowcost[j]=g.edges[k][j]; closest[j]=k; } } } 修改U和V-U之间的候选边,即调整 表示顶点k到顶点j有边 局部最优+调整=全局最优 贪心算法思想 最优结果 0 1 2 2 3 1 v=0 lowcost[0]=0 lowcost[1]=2 lowcost[2]=3 0 1 2 2 3 1 closest[0]=0 closest[1]=0 closest[2]=0 lowcost[0]=0 lowcost[1]=2 lowcost[2]=3 closest[0]=0 closest[1]=0 closest[2]=0 修改 lowcost[0]=0 lowcost[1]=0 lowcost[2]=1 closest[0]=0 closest[1]=0 closest[2]=1 最小生成树 (0,0) (0,1) (1,2) × 示例 Prim()算法中有两重for循环,所以时间复杂度为O(n2)。 8.4.5 克鲁斯卡尔算法 克鲁斯卡尔(Kruskal)算法是一种按权值的递增次序选择合适的边来构造最小生成树的方法。假设G=(V,E)是一个具有n个顶点的带权连通无向图,T=(U,TE)是G的最小生成树。  (1)置U的初值等于v(即包含有G中的全部顶点),TE的初值为空集(即图T中每一个顶点都构成一个分量)。 (2)将图G中的边按权值从小到大的顺序依次选取:若选取的边未使生成树T形成回路,则加入TE;否则舍弃,直到TE中包含(n-1)条边为止。   Joseph Bernard Kruskal(1928年~2010年),美国数学家,统计学家和计算机科学家。1954年获得普林斯顿大学博士学位。当克鲁斯卡尔还是二年级的研究生时,他发明了产生最小生成树的算法,当时他甚至不能肯定关于这个题目的两页半的论文是否值得发表。   除了最小生成树之外,克鲁斯卡尔还因对多维分析的贡献而著名。 克鲁斯卡尔算法求解最小生成树的过程(1) 0 1 5 4 3 6 2 28 10 16 14 25 24 18 22 12 图G 0 1 5 4 3 6 2 10 12 0 1 5 4 3 6 2 10 1 2 3 8 6 7 9 5 4 取1号边 取2号边 示例 按边大小递减排序 克鲁斯卡尔算法求解最小生成树的过程(2) 12 0 1 5 4 3 6 2 10 14 12 0 1 5 4 3 6 2 10 14 16 0 1 5 4 3 6 2 28 10 16 14 25 24 18 22 12 图G 1 2 3 8 6 7 9 5 4 取3号边 取4号边 克鲁斯卡尔算法求解最小生成树的过程(3) 12 0 1 5 4 3 6 2 10 14 16 22 12 0 1 5 4 3 6 2 10 14 16 22 25 0 1 5 4 3 6 2 28 10 16 14 25 24 18 22 12 图G 1 2 3 8 6 7 9 5 4 取6号边(不能取5号边) 取8号边(不能取7号边) 如何解决出现回路的问题 克鲁斯卡尔算法求解最小生成树的过程 0 1 5 4 3 6 2 28 10 16 14 25 24 18 22 12 图G 0 1 5 4 3 6 2 1 2 3 8 6 7 9 5 4 0 1 5 6 2 4 3 如何解决出现回路的问题 克鲁斯卡尔算法求解最小生成树的过程(1) 0 1 5 4 3 6 2 28 10 16 14 25 24 18 22 12 图G 0 1 5 4 3 6 2 10 12 0 1 5 4 3 6 2 10 1 2 3 8 6 7 9 5 4 取1号边 取2号边 0 1 0 6 2 4 3 0 1 0 6 2 4 2 克鲁斯卡尔算法求解最小生成树的过程(2) 12 0 1 5 4 3 6 2 10 14 12 0 1 5 4 3 6 2 10 14 16 0 1 5 4 3 6 2 28 10 16 14 25 24 18 22 12 图G 1 2 3 8 6 7 9 5 4 取3号边 取4号边 0 1 0 1 2 4 2 0 1 0 1 1 4 1 克鲁斯卡尔算法求解最小生成树的过程(3) 12 0 1 5 4 3 6 2 10 14 16 22 12 0 1 5 4 3 6 2 10 14 16 22 25 0 1 5 4 3 6 2 28 10 16 14 25 24 18 22

您可能关注的文档

文档评论(0)

yaocen + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档