树堆

✍ dations ◷ 2024-12-23 06:38:54 #树结构

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

相关

  • 半夏汤半夏散、半夏汤,出自《伤寒杂病论》。
  • 高龄化人口老龄化又称人口老化或人口高龄化、老龄化社会,是指因出生率降低和/或预期寿命延长导致年龄中位数增加的现象。大多数发达国家人口长寿,老龄人群变多;但发展中国家目前也出
  • 施瓦茨梅尔文·施瓦茨(Melvin Schwartz,1932年11月2日-2006年8月28日),美国物理学家,1988年获诺贝尔物理学奖。1932年11月2日出生于纽约,1953年毕业于哥伦比亚大学,在那里受教于拉比、斯坦
  • 罗伯特·李罗伯特·爱德华·李(英语:Robert Edward Lee,1807年1月19日-1870年10月12日),又常简称为李将军,美国将领、教育家,为南北战争期间联盟国(南军)最出色的将军,并以总司令的身份指挥联盟国
  • 大统大统,是一个名词,可以指:
  • 杰夫·弗莱克杰弗里·莱恩·弗莱克(英语:Jeffry Lane Flake;1962年12月31日-),是一位美国共和党政治人物,曾任亚利桑那州参议院议员及亚利桑那州众议院议员。2013年,全国纳税人联盟(英语:National
  • 格洛格氏定律格洛格氏定律(德语:Glogersche Regel,英语:Gloger's Rule)是一条生态地理学法则。该定律指出,越靠近赤道地带湿润气候下生活的恒温动物,其体内生物色素越多,体表颜色越深。该定律以
  • 高山市高山市(日语:高山市/たかやまし  */?)是日本岐阜县北部(飞驒地方)的一个市。现在的高山市,是2005年2月1日时旧高山市合并了周边的9个町村而成的。合并之后,该市成为日本面积最大的
  • 皮斯基尤赫山坐标:13°42′07″S 70°59′17″W / 13.70194°S 70.98806°W / -13.70194; -70.98806皮斯基尤赫山(Pisquioc),是秘鲁的山峰,位于该国东南部库斯科大区,由基斯皮坎奇省的马尔卡帕
  • 薛采《岁星集》、《薛堆山先生前集钞》薛寀(1598年-1662年),字谐孟,号岁星,南直隶常州府武进县人。方山先生薛应旗之玄孙,祖父薛敷教,万历十七年进士。生于万历二十六年(1598)十一月十七日