




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据结构的扩张 许多应用要求在现在数据结构有所创新,很少需要创造出全新的数据结构大纲数据结构的扩张 应用 总结 顺序统计树 区间树数据结构的扩张数据结构扩张 为什么提出数据结构扩张 数据结构如何扩张数据结构的扩张 在标准数据结构中增加信息比如:AVL、双链表215105502-110-1150(n+1)/2lgn251015 nil51015 nil2nil数据结构的扩张数据结构扩张为什么提出数据结构扩张 数据结构如何扩张数据结构的扩张 为什么提出数据结构扩张? 优化查找 BST,最坏情况下,查找长度为(n+1)/2, 最好情况下,logn AVL,查找最好最坏都是O(lgn)数据结构的扩张数
2、据结构扩张为什么提出数据结构扩张数据结构如何扩张数据结构如何扩张选择基础数据结构10315181620附加信息验证11612013615210318基本操作停止 YN数据结构如何扩张 要求:要求:在不影响RB-Tree上插入和删除的渐近时间的前提下对size域进行维护。 插入: 第一阶段:在RB-Tree中插入结点11 第二阶段:对RB-Tree进行调整156102183161201size15+;size10+;111183157第一阶段维第一阶段维护护size域的域的时间复杂度时间复杂度为为O(lgn)第二阶段维第二阶段维护护size域的域的时间复杂度时间复杂度为为O(1)31310310
3、3数据结构如何扩张 左旋转:42196931274xy子子树树的的sizexy左旋47931942116插入调整过程最多进行插入调整过程最多进行两次旋转,时间复杂度两次旋转,时间复杂度为为O(1),及插入过程维护及插入过程维护size域的时间复杂度为域的时间复杂度为O(lgn)sizey=sizexsizex=sizeleftx+sizerightx+1数据结构如何扩张 右旋转:42196931274yx子子树树的的sizexy右旋47931942116插入调整过程最多进行插入调整过程最多进行两次旋转,时间复杂度两次旋转,时间复杂度为为O(1),及插入过程维护及插入过程维护size域的时间复杂
4、度为域的时间复杂度为O(lgn)sizey=sizexsizex=sizeleftx+sizerightx+1数据结构如何让扩张 删除 第一阶段,对查找树进行操作,O(lgn); 第二阶段,对RB-Tree进行调整,至多做三次旋转,O(1);对一棵含n个结点的顺序统计树,插入操作和删除操作,包括维护size域,都需要O(lgn)时间。数据结构如何扩张 删除: 第一阶段,对查找树进行操作 第二阶段:对RB-Tree进行调整11612013615210318删除:20size -;O(lgn)515218218116O(1)插入和删除: O(lgn)对一棵含n个结点的顺序统计树,插入操作和删除操作
5、,包括维护size域,都需要O(lgn)时间。大纲数据结构的扩张应用 总结 顺序统计树 区间树顺序统计树顺序统计树提出的原因 顺序统计树的介绍 如何利用顺序统计树解决问题 举例Josephus排列求逆序对MIN-GAP顺序统计 顺序统计量: 例如 数组 在上述的无序数组中:第1个顺序统计量 第9个顺序统计量 在无序的集合中查找任意顺序统计量为O(n)528719913 4O(lgn)顺序统计 若在动态集合查找任意元素x在有序的线性序中的位置i。 例如:3 5 8 9 4 6 7 2 1 查找任意元素的位置i时间复杂度为:O(N)O(lgn)顺序统计树顺序统计树提出的原因顺序统计树 如何利用顺序
6、统计树解决问题 举例Josephus排列求逆序对MIN-GAP顺序统计树 支持快速顺序统计量操作的红黑树15610218331161201key域size域20151631810顺序统计树基础数据结构:RB-Tree,包括的域为: keyx、colorx、px、leftx、rightx附加的域为:sizex:包含以结点x为根的子树的内部结点数,包括x本身,即子树的大小。sizex=sizeleftx+sizerightx+1;设计新的操作:SELECT(rootx,i),RANK(T,x);15610218331161201key域size域顺序统计树是支持快速顺序统计量的操作的数据结构.顺序
7、统计树顺序统计树提出的原因顺序统计树的介绍如何利用顺序统计树解决问题 举例Josephus排列求逆序对MIN-GAP顺序统计树-操作 SELECT(rootx,i):返回指向x为根的子树中包含第i小关键字的指针;15610218331161201例如:例如:SELECT(15,4)r=sizeleft15+1 =2+1=31r=4-r=4-3=1SELECT(16,1)r=sizeleft16+1 =0+1=1=1,return 16时间复杂时间复杂度为:度为:O(lgn)顺序统计树-操作 RANK(T,x),返回对T进行中序遍历后的线性序中x的位置。例如:例如:RANK(26,38)r=si
8、zeleft38+1 =1+1=2r=r+sizeleft30+1 =2+1+1=4r不变,不变,r=4r=r+sizeleft26+1 =4+10+1=15r38=15,O(lgn)数组的为数组的为O(n)顺序统计树顺序统计树提出的原因顺序统计树的介绍如何利用顺序统计树解决问题举例Josephus排列求逆序对MIN-GAP顺序统计树应用-Josephus排列 问题:12436 5 7 n=7,m=n,m=3m是常数是常数36 2 7 5 14顺序统计树应用-Josephus排列 问题:1635427m=3 3输出序列:6 2 7 5 1 4 顺序统计树应用-Josephus排列 方法一:1
9、2 3 4 5 6 7 12435763625147时间复杂度为时间复杂度为:O(N)n=7,m=3m是常数是常数顺序统计树应用-Josephus排列 方法二:若m不是常数初始化:start=0,t=n;31271145637151271163457151start=(start+m-1)%tSELECT(T,start+1);m=3,start=(0+3-1)%7=2,SELECT(T,3);6426输出序列输出序列:3m=4,start=(2+4-1)%6=5,SELECT(T,6);74442顺序统计树应用-Josephus排列64514211266225m=5,start=(5+5-1
10、)%5=3,SELECT(T,4);输出序列输出序列:3754311254362614224顺序统计树顺序统计树提出的原因顺序统计树的介绍如何利用顺序统计树解决问题举例Josephus排列求逆序对MIN-GAP顺序统计树应用-求逆序对 逆序对:例如:无序数组: 9212620106: 12: 310: 2for (i = 0 ;i N ;i +)for(j = i + 1; j aj)count +;传统方法传统方法:时间复杂度为O(N2)9比6大, 所以1个9,6, 12都比2大, 3个12,别20 比10 大, 2个SUM: 1+3+2=6 SUM=SUM+ i +1-RANK(T,x)
11、数组中某个数字si的逆序数是指出现在si之前,但是比si大的数字的个数。 根据顺序统计量的Rank(T,x),每插入到一个元素x后,可以求得在已经出现的元素中,比x小的数字的个数。 /Rank(T, z)表示s0.i中min-gap;时间复杂度:O(lgn)大纲数据结构的扩张 应用 总结 顺序统计树 区间树区间树区间树的定义 区间三分法 区间树的查找操作 举例区间树 将RB-Tree扩张为由区间构成的数据结构。16,213016,218,95,819,2017,1926,2625,306,10优点:查找特定区间内发生什么事情8,91025,30305,8106,101017,192026,26
12、2619,2020max域maxx=max(highint x,maxleftx,maxrightx)25,3030区间树 区间树与线段树的对比:16,213026,26268,9105,8106,101017,192019,202025,30301,10 1,5 6,10 1,3 4,5 6,8 9,10 1,2 3,3 4,4 5,5 6,7 8,8 9,9 10,10 1,1 2,2 6,6 7,7 区间树区间树的定义区间三分法 区间树的查找操作 举例区间三分法 区间 i 和 i之间的关系: 重叠 i 在 i左边 i 在 i右边条件:条件:low i =high i ,且且 low i
13、=high i 条件:条件:high i high i 区间树区间树的定义区间三分法 区间树的查找操作 举例区间树的INTERVAL-SEARCH(T,i)操作 操作说明:用来找出树T中覆盖区间i的那个结点16,21308,92325,30305,81015,232317,192026,262619,20206,10100,33SEARCH(16,22,25)overlap( int x ,interval i) if(low x high i ) return 0; if(high x low i ) return 0; else return 1; return 15;时间复杂度为时间复杂
14、度为O(lgn);区间树的INTERVAL-SEARCH(T,i)操作 SEARCH(16,11,14)16,21308,92325,30305,81015,232317,192026,262619,20206,10100,33overlap( int x ,interval i) if(low x high i ) return 0; if(high x low i ) return 0; else return 1; return null;时间复杂度为时间复杂度为:O(lgn)区间树区间树的定义区间三分法区间树的查找操作 举例举例 1.最大重叠点 亦即覆盖它的区间最多的那个点。 最大重叠点总存在于某段的端点上。013
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐厅服务员(四级)习题含答案
- 天津2025年天津蓟州区教育系统招聘教师100人笔试历年参考题库附带答案详解
- 天津2025年天津市聋人学校招聘笔试历年参考题库附带答案详解
- 台州浙江台州三门县人民医院医共体分院招聘编外工作人员笔试历年参考题库附带答案详解-1
- 北京2025年北京西城区教委人才引进招聘笔试历年参考题库附带答案详解
- 石墨科技产品在商业谈判中的价值体现
- 小学数学教学工作总结
- 2025年抗艾滋病用药项目建议书
- 2025年度家族信托房产装入与家族内部协议合同
- 2025年度国有企业改革合作协议
- 2025年2级注册计量师专业实务真题附答案
- 2025年春季学期教导处工作计划及安排表
- 果实品质评价体系建立与应用-深度研究
- 智能制造技术在工业设计中的应用
- 2025年湖南高速铁路职业技术学院高职单招高职单招英语2016-2024年参考题库含答案解析
- 北京市东城区2024-2025学年高一上学期期末统一检测历史试卷(含答案)
- 发展新质生产力如何“因地制宜”
- 《fema失效模式分析》课件
- 联合救治房颤患者的协议书
- 企业自查报告范文
- 沐足店长合同范例
评论
0/150
提交评论