ImageVerifierCode 换一换
格式:PPT , 页数:26 ,大小:621KB ,
资源ID:13375187      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/13375187.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(Splay树及其应用.ppt)为本站上传会员【xrp****65】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

Splay树及其应用.ppt

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,Splay,树及其应用,Yali,朱全民,二叉查找树,二叉查找树,(,Binary Search Tree),可以被用来表示有序集合、建立索引或优先队列等。,最坏情况下,作用于二叉查找树上的基本操作的时间复杂度,,可能达到,O(n,)。,某些二,叉查找树的变形,基本操作在最坏情况下性能依然很好,如红黑树、,AVL,树,等。,Splay,树,Splay,树,是二叉查找树的改进。,对,Splay,树的操作的均摊复杂度是,O(log,2,n),。,Splay,树与二叉查找树一样,也具有,有序性,。,即,Splay

2、树中的每一个节点,x,都满足:该节点左子树中的每一个元素都小于,x,,而其右子树中的每一个元素都大于,x,。,Splay,树的核心思想就是通过,Splay,操作进行,自我调整,,从而获得平摊较低的时间复杂度。,Splay,操作,Splay,操作,是在保持,Splay,树有序性的前提下,通过一系列旋转操作将树中的元素,x,调整至树的根部的操作,(,Zig,:,右旋,Zag,:,左旋,),。,在旋转的过程中,要分三种情况分别处理:,1),Zig,或,Zag,2)Zig-Zig,或,Zag-Zag,3)Zig-Zag,或,Zag-Zig,Splay,操作 情况,1,Zig,或,Zag,操作:,节点

3、x,的父节点,y,是根节点。,Splay,操作,情况,2,Zig-Zig,或,Zag-Zag,操作:,节点,x,的父节点,y,不是根节点,且,x,与,y,同时是各自父节点的左孩子或者同时是各自父节点的右孩子。,Spaly,操作 情况,3,Zig-Zag,或,Zag-Zig,操作:,节点,x,的父节点,y,不是根节点,,x,与,y,中一个是其父节点的左孩子而另一个是其父节点的右孩子。,Splay,操作举例,Splay(1,S),Spaly,树基本操作,查找:与二叉排序树查找类似,只是查找结束后要将找到的元素通过,Splay,操作旋转到根。,插入:用查找过程找到要插入的位置,进行插入。然后将新元

4、素旋转到根。,删除:首先在树中找到要删除的元素,将他转到根节点并删去,这样原来的树就分裂成了两棵树,然后将左子树中拥有最大关键字的那一个元素转到根,由于它是左子树中的最大元素,所以他不存在有儿子,这样只要把原来的右子树作为他的右子树,就重新合并成了一棵树。,可见在,Splay,树的基本操作中,处处要用到,Splay,旋转操作!,例一,Pet,(湖南省省队选拔赛),宠物收养场提供两种服务:收养被离弃的宠物与让新的主人领养宠物。每个宠物有不相同的特点值。领养人所希望的特点值也不相同。如果领养人,/,遗弃宠物过多,则当前来的宠物,/,领养人选择离其特点值最近的(如果有两个特点值与其同样接近,则选择较

5、小的)领养人,/,宠物,被领养,/,领养。并且纪录两个特点值的差值。,输入,N,条请求,(X,Y),,,X=0,表示宠物,;X=1,表示领养人,,Y,为特征值。,任务是计算所有差值的和。,(,N=80000,,等待的宠物,/,领养者数,M=10000,),例一,Pet,我们先用最普通的数组记录过多的宠物,/,领养人。,查找:需要检索整个数组,复杂度为,O(M),删除:删除指定元素之后,需要成批移动主轴元素,时间复杂度也为,O(M),这样最坏情况下时间复杂度为,O(NM),,是不可取的。,例一,Pet,对宠物,/,领养人过多的情况下,我们建立一颗排序二叉树,并记录其属性,Sign,(宠物,/,领

6、养人)。,对于命令,(X,Y),,如果树为空或者,X=Sign,,则将其插入,并令,Sign=x,;,否则在树中查找符合要求的结点,记录特征值之差,并将其删除。(注意无论树的属性是,0,或,1,相对进行的操作是相同的),普通的排序二叉树在最坏情况下时间复杂度也是,O(NM),。我们可以应用较高效的排序二叉树,例如,AVL,树(平衡二叉树)或者,Splay,树。,例一,Pet,AVL,树引入平衡因子的概念,使得整棵排序二叉树严格平衡,时间复杂度严格为,O(nlogm,),。但是其编程复杂度很高。,Splay,树通过,Splay,旋转操作,使得分摊时间复杂度为,O(nlogm,),,虽然常系数较,

7、AVL,树相比大。但是操作简便,编程复杂度较低。,在考场上我们要综合考虑各方面的因素,合理的选择数据结构。,例二 郁闷的出纳员,(NOI2004),你是一个公司出纳员,需要处理,n,条下面的命令:,此外,如果某个员工的工资低于最低工资下界,Min,,他就会立刻离开公司。,现在请你写一个程序完成这个工资统计的工作。,名称,格式,作用,I,命令,I,_k,新建一个工资档案,初始工资为,k,。,A,命令,A,_k,把每位员工的工资加上,k,S,命令,S,_k,把每位员工的工资扣除,k,F,命令,F,_k,查询第,k,多的工资,例二 郁闷的出纳员,这个题目简单来说就是请你设计一种数据结构满足如下,4,

8、种操作:,向集合中插入一个数;,将集合中所有的数都加上一个值;,将集合中所有的数都减去一个值,并将所有低于,min,的数从集合中删除掉(,min,是事先给定的一个固定的数);,查找集合中第,k,大的数。,我们考虑应用,Splay,树维护这个工资系统。,例二 郁闷的出纳员,Splay,树的插入、删除、查找第,K,大元素都可以在均摊时间复杂度,O(logn,),内完成。,但是还有一种操作就是将集合内的所有元素都加上或减去一个值,如果单纯的按照题目要求对数据进行改动,则每一步这样的操作所需的时间复杂度为,O(NlogN,),(因为需要重建二叉树),例二 郁闷的出纳员,注意到,这个增值操作不会改变已经

9、在树中的元素的大小关系,只会改变已经在集合内的元素与以后将要加进来的元素间的关系。这样我们就可以只改变以后要加进来的元素而不改变当前已有的元素。,具体做法为设立一个表示改变量的变量,delta,,遇到改值操作,只需令,delta=,delta,+a,,同时将,Splay,树中所有小于,min-delta,的元素删掉。,当新增一个值为,x,的元素时,只需先修改为,x-delta,在插入树中即可。这样改值的复杂度就为,O(1),了,例二 郁闷的出纳员,通过,Splay,树维护工资系统,我们得到了时间复杂度为,O(nlogn,),的算法。,至此,问题得到解决。,例三 序列终结者,给定一个长度为,N,

10、的序列,每个序列的元素是一个整数。要支持以下三种操作:,将,L,R,这个区间内的所有数加上,V,。,将,L,R,这个区间翻转,比如,1 2 3 4,变成,4 3 2 1,。,求,L,R,这个区间中的最大值。,最开始所有元素都是,0,。,N=50000,,操作数,=100000,。,例三 序列终结者,我们将序列的每个元素值作为关键字,将它们在序列中的相对位置作为判定大小关系的函数(左小右大),这样就可以建立一棵,n,个节点的,Splay,树。,我们给,Splay,树增添三个域:,Treev.Add,:记录以节点,v,为根的子树被整体改值的情况。,Treev.Turn,:记录以节点,v,为根的子树

11、所表示的这段区间有没有被整体翻转过。,Treev.Sum,:记录以节点,v,为根的子树中的最大值。,三个序列操作都和某一段给定区间,L,R,有关,所以我们首先介绍区间的截取操作。,例三 序列终结者,首先我们找到,Splay,中的第,L,大的元素,将它旋转到根,将并将它的左子树分离出来。设原树是,T1,,它的左子树是,T2,则现在的,Splay,树,T2,就是序列,1,L-1,所代表的树;,T1,就是序列,L,n,所代表的树。,同理,找到,T1,中第,R-L+1,大的元素,将它旋转到根,并将,T1,的右子树分离出来,设为,T3,。,则现在,T1,就是序列,L,R,所代表的树,,T3,就是序列,R

12、1,n,所代表的树。,例三 序列终结者,这样我们就成功分离出,L,R,区间,并且在效率上相当于只用了常数次的查找操作。,这是我们只需要对,T1,的根节点进行修改,Sum,、,Add,或者,Turn,域的修改即可。,修改完后,再将,T1,、,T2,、,T3,进行合并,易知合并在效率上也相当于常数次的查找操作。,所以对于序列的每一种操作,都可以在均摊复杂度,O(logn,),完成。,例三 序列终结者,现在的问题是,修改了某一个子树的,Sum,、,Add,、,Turn,值之后,以后在进行查找、旋转等操作的时候怎样处理和运用?,我们可以在查找到某个节点,v,的时候,将它的,Sum,、,Add,、,Turn,值传递到子树上,这样就不影响后面的操作了。,例三 序列终结者,这里以修改,Add,为例。当查找到节点,p,时,进行如下操作:,p.data,p.data+p.add,;,p.lch.add,p.lch.add+p.add,;,p.rch.add,p.rch.add+p.add,;,/,将,p,节点的,add,值 分散到左右子树和,p,节点的,data,中,p.add,0,;,/,清空,add,域,Sum,、,Turn,域的修改也可以类似进行。,例三 序列终结者,综合上面的分析,我们可以在,O(mlogn,),的时间复杂度内解决序列操作的问题。,至此问题得到解决。,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服