树堆

✍ dations ◷ 2025-07-01 09:44:09 #树结构

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

相关

  • 全能悖论对宗教的批评 · 自由思想反教权主义 · 反宗教虚构宗教全能悖论(omnipotence paradox)是一组关于“全能”概念在语义学上的悖论,它包含两个方面的问题:一、一个全能的个体在逻
  • 西戎西戎是西周对其边界西方的部落的泛指,商代称为羌或氐羌,相传为炎帝之后,是汉族与羌族的先民之一。在战国时期之后,“西戎”被用来代指位于汉族以西的各个非汉民族,为四夷之一。在
  • 对映体对映异构体(英语:Enantiomer (/ɪˈnæntiəmər, ɛ-, -tioʊ-/ ə-NAN-tee-ə-mər)),又称对掌异构物、光学异构物、镜像异构物或旋光异构体,不能与彼此立体异构体镜像完全重叠
  • 形态发生形态发生(希腊语:μορφογένεση,字面意思是"形状的开始")是一个生物体发展形态的生物过程。它是发育生物学的三个基本方面之一,同时控制细胞生长和细胞分化,统一在演化发
  • 胞果胞果是被子植物的一种果实类型,和瘦果类似,是单果类干果中的一种闭果,其成熟果实的果皮发育成薄膜状,干燥且不开裂,果皮与种皮分离。例如部分苋科(包括传统藜科,该科在APG系统中已
  • 在日朝鲜人归国运动在日朝鲜人归国运动是指于1950年代至1984年期间,在日朝鲜人响应朝鲜最高领导人金日成的号召下,从日本返回朝鲜的运动。在此20多年间,约9万名在日朝鲜人回流朝鲜,其中包括了平民,
  • 弹道导弹潜艇弹道导弹潜艇(英语:Ballistic Missile Submarine)是一种以发射弹道导弹为主要功能、专用于水底隐身潜航以作为核威慑(nuclear deterrent)武力平台的潜艇类别。世界上最早成军的弹
  • 莱斯利·凯里莱斯利·凯里(英语:Leslie Irwin Carey)是美国的一位录音师(英语:Foley artist),他于1938年首次进入好莱坞,在那里他开始了他人生中制作的300多部电影中的第一部。其中一些是1947年
  • 暹缅战争 (1775年–1776年) 缅甸军队 暹缅战争 (1775年–1776年),泰国称阿社文吉战争(泰语:สงครามอะแซหวุ่นกี้),是暹罗(泰国)吞武里王国与缅甸贡榜王朝之间的一场战争。1767年,缅甸灭亡暹
  • 乌克兰化乌克兰化(乌克兰语:Українізація)是指乌克兰政府增加乌克兰语的使用和促进乌克兰文化发展的政策,具体表现在公共生活的各个领域,如:教育,出版,政府和宗教。这一术语,最突