树堆

✍ dations ◷ 2025-07-02 11:46:26 #树结构

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

相关

  • span style=white-space:normal;古体拉丁语/span古体拉丁语,亦谓早期拉丁语或古拉丁语,指公元前75年以前的拉丁语,即古典拉丁语时代之前的拉丁语。 (在新拉丁语和现代拉丁语中,这门语言称作prisca Latinitas 而非vetus Latina
  • 倒晶格倒易点阵(英语:reciprocal lattice),又称倒(易)晶格、倒(易)格子,是物理学中描述空间波函数的傅立叶变换后的周期性的一种方法。相对于正晶格所描述的实空间周期性,倒晶格描述的是动量
  • 财政局财政局(葡文:Direcção dos Serviços de Finanças,葡文缩写:DSF)隶属于澳门特区政府经济财政司,负责指导、统筹及监察澳门特别行政区公营部门之财政活动。前身为财政司,该司司长
  • 伯川德竞争伯川德模型(Bertrand competition)描述了一种竞争格局,即生产同质产品的寡头厂商可能并不总是以产量做为决策变量进行竞争,也可以以价格做为决策变量的竞争方式。伯川德模型的结
  • 神经元黏附分子2E3V, 2HAZ, 2VKW, 2VKX, 3MTR· extracellular region · plasma membrane · external side of plasma membrane · cell surface · integral to membrane · axon
  • 塞赫姆卡拉塞赫姆卡拉(英语:Sekhemkare),埃及第十三王朝国王。据《都灵王表》记载,他在位6年。他统治时期的一座纪念碑上的几块被保存下来。他的名字还刻在尼罗河第二瀑布地区的努比亚尤龙
  • 康西诺·孔奇尼康西诺·孔奇尼,昂克尔侯爵(法语:Concino Concini, Count della Penna, Marquis and Maréchal d'Ancre,1575年?月?日-1617年4月24日),意大利冒险家和政治家。路易十三时的法国首席大
  • 金毛鼹属金毛鼹属(金毛鼹),哺乳纲、食虫目的一属,而与金毛鼹属(金毛鼹)同科的动物尚有巨金鼹属(巨金鼹)、温氏金鼹属(温氏金鼹)、绿鼹属(斯氏绿鼹)、黄毛鼹属(黄毛鼹)等之数种哺乳动物。
  • 吉春吉春(高棉语:គាត ឈន់;1934年8月11日-),柬埔寨政治家。吉春出生于桔井省川龙县的中产阶级家庭,是柬埔寨华人混血儿。1951年前往金边,就读于西索瓦高中(英语:Lycée Sisowath)。195
  • 沙勿略·洛萨诺·巴拉甘沙勿略·洛萨诺·巴拉甘(西班牙语:Javier Lozano Barragán;1938年1月26日-)是墨西哥籍天主教司铎级枢机及宗座医疗牧灵理事会荣休主席(英语:Pontifical Council for the Pastoral