- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Treap的方法與应用
Treap的方法与应用 河南省实验中学 郭家宝
Treap的方法与应用
河南省实验中学 郭家宝
关键词
Treap 数据结构 平衡树 动态统计
摘要
Treap是一种编写容易,时间高效的一种平衡二叉查找树。本文分析了Treap的平衡性,介绍了Treap的构造方法与技巧,并与其他各种平衡树进行了比较,体现了Treap的优越性,并通过例题介绍了Treap在信息学竞赛中广泛的应用。
说明
本文写作的目的
Treap作为被广泛应用的一种平衡树数据结构,一直以来许多人都在研究或想要研究。但笔者经历多番查找资料,很难找到一个关于Treap的系统性、总结性而又简明易懂,适合初学者阅读的论文。本文想通过对Treap的介绍,起到抛砖引玉的作用。欢迎大家指正和批评。
本文适合的读者
信息学奥林匹克选手
计算机或相关专业的大学生
对计算机算法、数据结构感兴趣的读者
阅读本文所需掌握的预备知识
基础的数学知识
计算机操作方法
程序设计语言
基本算法
基本数据结构(堆栈、队列、二叉树)
目录
一. 序言
我们为什么要排序
基于比较的排序
基于比较的排序的三种手段
二叉查找树
二. 二叉查找树
二叉查找树的定义、遍历与查找
定义
遍历
查找
二叉查找树的插入与删除
插入
删除
二叉查找树的平衡性问题讨论
三. Treap
什么是Treap
Treap = Tree + Heap
为什么平衡
如何构建Treap
旋转
遍历和查找
插入
删除
为什么要用Treap
Treap的特点
Treap与其他平衡树的比较
Treap的更多操作与技巧
懒惰删除
查找最值
前驱与后继
合并重复节点
Treap中元素的类型与排序的规则
维护子树大小的必要性
查找第k小元素
求元素的排名
维护附加关键字
四. Treap的应用
Treap在动态统计问题中的应用
Treap在搜索问题中的应用
Treap在动态规划问题中的应用
Treap与其他数据结构的相关应用
优先队列的实现
数据结构的复合——树套树
五.结语
总结
感谢
参考资料
一、序言
1. 我们为什么要排序
Treap是用来排序(Sort)的一种数据结构(Data Structure)。在讨论Treap之前,让我们先讨论一下,我们为什么要排序?当我们看到世间万物的时候,是否想探究其内在的规律,是否想了解自然的顺序?也许你认为,排序当然是必要的,我给出我认为需要排序的三点理由:
有序的事物符合人类大脑结构
你可以轻易地一眼看清少于6个物体,更多的话就需要数了。在有序的事物中,你可以很快得找到需要的信息,因为有序的事物符合人类大脑的认识规律,内在的排序不是人类的本能。
有序的事物符合数学规律
有序的元素之间有着递增或递减的单调性。对于探究元素的内在联系,排序是极其重要的。
打乱顺序是容易的,建立顺序是困难的
如热力学第二定律指出,对不可逆过程,系统的熵总是增加的。也就是元素就是自发的走向无序的状态,建立顺序是需要代价的,不能自发的进行,所以需要我们主动来排序。
2. 基于比较的排序
在计算机科学中,排序是一门基础的算法技术,许多算法都要以此作为基础,不同的排序算法有着不同的时间开销和空间开销。从1959年Donald Shell发明了冲破O(N2)时间屏障的希尔排序,到1962年C. A. R. Hoare发明了时间复杂度为O(NlogN)快速排序,排序已经被认为是一个已解决的问题。然而至今新的排序算法依然在不断产生,如2005年被发明的图书馆排序。排序算法已经有非常多种了,最直观的,序列中数据之间需要进行比较的排序,被称为基于比较的排序。
(1) 基于比较的排序的三种手段
在基于比较的排序算法中,存在着两种基本的思想,即对于混乱的数据,调整或者重建。于是有三种基本手段:交换、选择、插入。
交换是实现调整的最直接手段,基本方法是把逆序的数据进行交换,以实现顺序排列。以重建实现排序,考虑是每次从原序列中挑出应该取的元素,还是从原序列中顺序地取出元素,考虑插入到新序列中哪个位置。前者的手段为选择,后者的手段是插入。
在基于交换的排序算法中,人们最早发明了O(N2)的冒泡排序(Bubble Sort)。这种算法十分简单,而且只需要常数的额外的空间,所有一直以来是初学者一定要了解的排序算法。后来有人发明了基于交换的快速排序(Quick Sort),它的平均时间界为O(NlogN)。迄今为止,快速排序是一般实际应用中效果最好的算法。
在基于选择的排序算法中,人们最早发明了O(N2)的选择排序(Selection Sort)。选择排序的算法更为容易理解和实现,就是每次都从原序列中顺序查找出最小的元素,放入新的序列的下一个
您可能关注的文档
- TC4鈦合金表面电镀铜摩擦磨损性能的研究.doc
- T305T308設置对掉话的影响.doc
- TCD和ECD的分析比較.doc
- TBM在水工隧洞中的應用.doc
- TCID50與moi值的计算.doc
- TCH擁塞率高的分析处理.doc
- TCL在并購路上失败问题及解决措施.doc
- TCL-LCD無屏黑屏调节屏参的方法.doc
- TCL腳本语言在测试系统中的应用.doc
- TCL各種机芯进入工厂菜单的方法(新).doc
- TPS在廣汽丰田物流系统的应用及借鉴意义.doc
- TQ房地產住宅房地产项目市场竞争结构的研究.doc
- TRIBON在管系生產设计中的应用.doc
- TRICON三重冗余系統在加氢联合装置的应用.doc
- trips中刑罰措施研究.doc
- TRIPS協议第13条“三步检验法”对著作权限制制度的影响.doc
- Triforma在冷軋机组基础模板图三维设计中的应用.doc
- TR-104凍融循环对GCL和压实粘土层的影响03版2011年08月17日.doc
- TRIZ理論在纤维乙醇工业中的应用.doc
- Trovagene推出基于Bio-RadQX100TM數字PCR系统的TransrenalKRAS突变检测技术.doc
文档评论(0)