树堆

✍ dations ◷ 2025-02-23 20:38:06 #树结构

树堆(英语: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})}

相关

  • 甲胺磷甲胺磷(Methamidophos),是一种有机磷化合物,通常用作农药,在台湾的商品名为达马松、在中国大陆的商品名为多灭灵。工业品为黄色粘稠液体,易溶于水、醇、丙酮等溶剂,不溶于石油醚,遇
  • 喀尔文教派加尔文主义(法语、荷兰语:Calvinisme;英语:Calvinism),亦称为归正主义,是16世纪法国与瑞士基督新教宗教改革家约翰·加尔文毕生之主张,以及支持加尔文的其他神学家意见的统称,在不同
  • 朝天椒朝天椒(学名:Capsicum annuum var. conoides ‘Chao Tian Jiao’)又称五彩辣椒,是茄科辣椒的变种植物品种,为目前常见的食用辣椒之一。原产地为秘鲁、墨西哥。一年生草本;卵形叶片
  • 多聚磷酸多聚磷酸(Polyphosphoric acid,缩写PPA),又称多磷酸、聚磷酸。化学式   H
  • NBA年度第二队NBA最佳阵容(All-NBA Team)是NBA每年颁奖的荣誉之一,用来表彰当季联盟表现最好的运动员,由美国和加拿大的体育记者和主持人投票选出。NBA最佳阵容于1946年设立,每个赛季选拔一次
  • 林园清水岩林园清水岩,又称林园清水岩寺、清水岩清水寺,简称清水岩、清水寺,是位于台湾高雄市林园区的一座岩仔,主神为三宝佛、观音菩萨、清水祖师,为林园区全区及大寮区义仁、昭明及新厝3
  • 维勒尿素合成Wöhler尿素合成是氰酸铵(NH4NCO,或称异氰酸铵)重排为尿素(CO(NH2)2)的化学反应,由弗里德里希·维勒于1828年发现。维勒从1824年开始研究氰酸铵,他的初衷原本是要合成氰酸铵,但他发
  • 甜蜜大逃亡《甜蜜大逃亡》(英语:The Sweet Escape)是美国创作歌手关·史蒂芬妮的一首歌曲,收录于她的同名录音室专辑《甜蜜出关》 。歌曲由关、阿肯与乔治奥·图因福尔特三人所写。伴唱的
  • MARS (B'z专辑)Million(日本唱片协会)《MARS》是日本音乐组合B'z于1991年5月29日由BMG VICTOR发行的第3张迷你专辑。本专辑在BMG ROOMS(现:VERMILLION RECORDS)成立后,发售权留在了BMG ROOMS。
  • 失效评定在软件设计中的失效评定(failure assessment)是指确认一算法在特定条件下会失败,并设法修正其失败原因的计算机科学。失效评定和算法的准确性、鲁棒性、可靠度有直接关系。