树堆

✍ dations ◷ 2025-06-09 00:30:11 #树结构

树堆(英语:Treap),是有一个随机附加域满足堆的性质的二叉搜索树,其结构相当于以随机数据插入的二叉搜索树。其基本操作的期望时间复杂度为 O ( log n ) {\displaystyle O(\log {n})} 。相对于其他的平衡二叉搜索树,Treap的特点是实现简单,且能基本实现随机平衡的结构。

Treap=Tree+Heap。Treap本身是一棵二叉搜索树,它的左子树和右子树也分别是一个Treap,和一般的二叉搜索树不同的是,Treap纪录一个额外的数据,就是优先级。Treap在以关键码构成二叉搜索树的同时,还满足堆的性质。Treap维护堆性质的方法用到了旋转,只需要两种旋转,编程复杂度比Splay要小一些。

给节点随机分配一个优先级,先和二叉搜索树的插入一样,先把要插入的点插入到一个叶子上,然后跟维护堆一样,如果当前节点的优先级比根大就旋转,如果当前节点是根的左儿子就右旋如果当前节点是根的右儿子就左旋。

由于旋转是 O ( 1 ) {\displaystyle O(1)} 的,最多进行h次(h是树的高度),插入的复杂度是 O ( h ) {\displaystyle O(h)} 的,在期望情况下 h = O ( log n ) {\displaystyle h=O(\log {n})} ,所以它的期望复杂度是 O ( log n ) {\displaystyle O(\log {n})}

因为Treap满足堆性质,所以只需要把要删除的节点旋转到叶节点上,然后直接删除就可以了。具体的方法就是每次找到优先级最大的儿子,向与其相反的方向旋转,直到那个节点被旋转到了叶节点,然后直接删除。

删除最多进行 O ( h ) {\displaystyle O(h)} 次旋转,期望复杂度是 O ( log n ) {\displaystyle O(\log {n})}

和一般的二叉搜索树一样,但是由于Treap的随机化结构,Treap中查找的期望复杂度是 O ( log n ) {\displaystyle O(\log {n})}

二叉搜索树有一个特性,就是每个子树的形态在优先级唯一确定的情况下都是唯一的,不受其他因素影响,也就是说,左子树的形态与树中大于根节点的值无关,右子树亦然。这是因为Treap满足堆的性质,Treap的根节点是优先级最大的那个节点,考虑它的左子树,树根也是子树里面最大的一点,右子树亦然。所以Treap相当于先把所有节点按照优先级排序,然后插入,实质上就相当于以随机顺序创建的二叉搜索树,只不过它并不需要一次读入所有数据,可以一个一个地插入。而当这个随机顺序确定的时候,这个树是唯一的。因此在给定优先级的情况下,只要是用符合要求的操作,通过任何方式得出的Treap都是一样的,所以不改变优先级的情况下,特殊的操作不会造成Treap结构的退化。而改变优先级可能会使Treap变得不够随机以致退化。

Treap的其它操作的期望复杂度同样是 O ( log n ) {\displaystyle O(\log {n})}

相关

  • 1988年上海市甲型肝炎大流行1988年上海市甲型肝炎大流行,简称上海甲肝大流行或上海甲肝大爆发,发生于1988年春季的上海市,主要由市民食用受到甲肝病毒污染的毛蚶引起,此次疫情共造成310,746人感染和31人死
  • 质子6973167262192369000♠1.67262192369(51)×10−27 kg 7002938272081300000♠938.2720813(58) MeV/c26974141060678730000♠1.4106067873(97)×10−26 J·T−1 6997152103
  • 闪光灯闪光灯,是在摄影时所使用的人造光源。当按下照相机的快门之后,通常在1/1000到1/200秒之间,照亮场景。最早的闪光灯可以追溯到1887年,诞生于德国的用于摄影的闪光灯。早期的闪光
  • 债务危机希腊国债危机,又称希腊债务危机,是现时欧洲主权债务危机之一。自2009年末开始,因为希腊国债水平增长强劲,投资者纷纷关注希腊偿还债务的能力,主权债务危机的恐惧正逐渐酝酿。由债
  • 300万人口的现代城市300万人口的现代城市(法语:Ville contemporaine de trois millions d'habitants),也称当代城市(法语:Ville Contemporaine),是著名法国建筑师勒·柯布西耶应邀为巴黎1922年秋季沙龙
  • 环氧丙烷环氧丙烷,分子式C3H6O。无色醚味液体,低沸点、易燃。有手性,工业品一般为两种对映体的外消旋混合物。与水部分混溶,与乙醇、乙醚混溶。与戊烷、戊烯、环戊烷、环戊烯、二氯甲烷
  • 奥地利-埃斯特的洛伦兹大公 (比利时亲王)奥地利-埃斯特大公,洛伦兹亲王(德语:Lorenz Habsburg-Lothringen;英语:Prince Lorenz of Belgium, Archduke of Austria-Este,全名:洛伦佐·奥托·卡尔·阿梅迪乌斯·玛利亚·庇护
  • 江南布衣服饰有限公司江南布衣服饰有限公司,是一家位于中国的设计师品牌时尚集团。主要以设计、推广及出售女士、男士、儿童及青少年的时尚服装、鞋类、配饰及家居类产品。品牌组合目前包括六个品
  • 科隆语科隆语(Kölsch)是德国城市科隆及其附近一带的方言,属于利普里安语的一种。科隆是德国少数拥有自己方言的城市。现在科隆语的使用者约有25万人,他们也都会使用高地德语作为第二
  • 罗宾汉效应罗宾汉效应(英语:Robin Hood effect)是一经济词语,是指借由收入再分配(英语:Income_redistribution)的方式来缩小人民的贫富差距。此一词语得名自传说人物罗宾汉,在传说中是劫富济贫