武汉大学《算法设计与分析》教学课件-4堆上的运算.ppt

武汉大学《算法设计与分析》教学课件-4堆上的运算.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Algorithms Design Techniques and Analysis 例子 设S={1,2,…,9},考虑用下面的合并和寻找序列:UNION(1,2), UNION(3,4), UNION(5,6), UNION(7,8), UNION(2,4), UNION(8,9), UNION(6,8), FIND(5), UNION(4,8), FIND(1)。 Algorithms Design Techniques and Analysis 例子 2 4 6 8 9 1 3 5 7 UNION(3,4) UNION(5,6) UNION(7,8) S{1,2,3,4,5,6,7,8,9} UNION(1,2) Algorithms Design Techniques and Analysis 例子 2 4 6 8 9 1 3 5 7 UNION(2,4) UNION(8,9) UNION(6,8) Algorithms Design Techniques and Analysis 例子 2 4 6 8 9 1 3 5 7 FIND(5) Algorithms Design Techniques and Analysis 例子 2 4 6 8 9 1 3 5 7 UNION(4,8) Algorithms Design Techniques and Analysis 例子 2 4 6 8 9 1 3 5 7 FIND(1) End Algorithms Design Techniques and Analysis 4.3.4 union-find算法的分析 引理 4.2对于任意的整数: r?0,秩r的节点数至多是n/2r. 证明: 固定r的一个特定值. 当给一个节点x指定秩为r时,对以x为根的树中包含的所有节点都用x标号。由引理4.1可知,标号的节点个数至少是2r. 如果树的根节点发生变化,那么新树的根节点的秩至少是r+1,这说明那些用x标号过的节点将不再被标号了。 由于标号过的节点个数的最大值是n,而且每个秩为r的根至少有2r 个节点,那么至多有n/2r个节点秩为r。 Algorithms Design Techniques and Analysis 4.3.4 union-find算法的分析 推论 4.1任何节点的秩最大是?logn?. 证明:如果对于某个节点x,有rank(x)=r? ?logn?+1,那么由引理4.2可知,至多有n/2 ?logn?+11个节点的秩为r。 . 定义4.2 时于任意正整数n , Iog * n定义为 例如, log*2=1, log*4=2, log*16=3, log*65536=4, log*265536=5. Algorithms Design Techniques and Analysis 算法分析 定理 4.3 设T(m)表示用按秩合并和路径压缩处理m个合并和寻找运算的交替序列?所需的运行时间,那么在最坏情况下 T(m)=O(mlog*n) 注意对于几乎所有的实际用途,log*n?5.这说明事实上对于所有的实际应用,运行时间是O(m)。 例1 银河英雄传说(NOI2002) 公元五八○一年,地球居民迁移至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展。 宇宙历七九九年,银河系的两大军事集团在巴米利恩星域爆发战争。泰山压顶集团派宇宙舰队司令莱因哈特率领十万余艘战舰出征,气吞山河集团点名将杨威利组织麾下三万艘战舰迎敌。 例1 银河英雄传说(NOI2002) 杨威利擅长排兵布阵,巧妙运用各种战术屡次以少胜多,难免恣生骄气。在这次决战中,他将巴米利恩星域战场划分成30000列,每列依次编号为1, 2, …, 30000。之后,他把自己的战舰也依次编号为1, 2, …, 30000,让第i号战舰处于第i列(i = 1, 2, …, 30000),形成“一字长蛇阵”,诱敌深入。这是初始阵形。当进犯之敌到达时,杨威利会多次发布合并指令,将大部分战舰集中在某几列上,实施密集攻击。合并指令为M i j,含义为让第i号战舰所在的整个战舰队列,作为一个整体(头在前尾在后)接至第j号战舰所在的战舰队列的尾部。显然战舰队列是由处于同一列的一个或多个战舰组成的。合并指令的执行结果会使队列增大。 例1 银河英雄传说(NOI2002) 然而,老谋深算的莱因哈特早已在战略上取得了主动。在交战中,他可以通过

文档评论(0)

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

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

1亿VIP精品文档

相关文档