手把手教你用Treap【信息技术】.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Mzoi 2008 Godric 手把手教你用TREAP Godric 0 前言 作为一个Splayer,要写这样一篇关于treap的文章来推广treap,实在是 一件不太爽的事。然而不可否认,treap在OI中有着很重要的作用。在此谨以 这篇文章来简单介绍一下Treap。 由于作者本人数学基础的薄弱,难以给出很多操作时间效率的分析,因此本 文立足点是treap的实现,希望对那些已经对BST有所掌握,正在学习平衡树 的OIER有所帮助。同时由于作者本人的treap实践经历并不多,难免会有一些 对细节的疏忽甚至是严重错误,还请大牛指出。 1 什么是treap 1 Treap,或者叫做RandomizedBinarySearchTree,是一种平衡树 的替 代品,它采用的“平衡”规则和AVL,RB-TREE以及最近风头正劲的SBT有着很 大的区别。AVL和SBT采用的都是利用高度或树规模来保持整个树的高度不超 过O(logN),从而保证了各项操作的时间复杂度是O(logN)级别的。而treap 利用了“随机”的 思想,引入了随机的因素,从而达到避免二叉搜索树退化情 况的目的。 一个很有名的关于treap的等式是:treap=tree+heap。就我个人看来, 如果没有对这里的“heap”有着正确理解的话,往往会陷入一些误区。因为很 1 平衡树——这里的平衡树(BalancedBianrySearch Tree)仅指AVL,红黑树等“平衡”的二叉搜索树。 Mzoi 2008 Godric 1 Mzoi 2008 Godric 多人对于“heap”的概念可能不是太清楚,往往认为“二叉堆”和“堆”等同, 所以要能对treap有一个正确的理解,首先要明确这里的“heap”与二叉堆的 区别。 2 正确理解Treap Treap=Tree+ Heap 1)Tree Treap首先是一颗二叉树,更进一步说,treap首先是一种特殊的二叉 2 树——二叉搜索树 。由于满足BST的性质,treap能够用于很多需要一定“序” 关系的场合,这在后面的叙述中将会逐渐谈到。 2)Heap 对于Heap的理解说难也难,说容易也容易。只要记住这里的Heap只满 3 足Priority[Lch[T]]=Priority[T]和Priority[Rch[T]]=Priority[T] 这样的“堆性质”, 而不一定是二叉堆那样的完全二叉树。这在初期可能会对OIER们造成一些困惑, 但当你熟练了之后,就会发现这其实很好理解。 那么,这个优先级应该由什么来确定呢??这就是treap和其它BST不同 的地方——treap的优先级与输入的数据没有关系,而是利用系统生成的一个随 机数。由于引入了随机因素,正如随机化快速排序中那样,最坏情况的出现与输 入的数据没有了必然的联系,转而依靠随机数的出现序列,但当随机序列不好时, 又因为还受到数据的影响,导致最坏情况出现的概率非常小,因而treap的各 2 二叉搜索树——二叉搜索树(BinarySearchTree)有很多其它的叫法,例如排序二叉树等,有关二叉搜索 树的性质在此不再赘述。应该说在学习任何平衡树前首先要能够写出最一般的二叉搜索树,这对于学习好 平衡树有着很重要的意义。 3 treap中各结点间优先级的关系有着不同的实现,简便起见,本文中都采用子结点优先级不超过根结点优先 级的方法。 Mzoi 2008 Godric 2 Mzoi 2008 Godric 项操作都更偏向于O(logN)级别的,而不是

文档评论(0)

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

1亿VIP精品文档

相关文档