平衡树

✍ dations ◷ 2025-06-09 09:47:25 #数据结构,树结构

平衡树是计算机科学中的一类数据结构,为改进的二叉查找树。一般的二叉查找树的查询复杂度取决于目标结点到树根的距离(即深度),因此当结点的深度普遍较大时,查询的均摊复杂度会上升。为了实现更高效的查询,产生了平衡树。

在这里,平衡指所有叶子的深度趋于平衡,更广义的是指在树上所有可能查找的均摊复杂度偏低。

旋转(Rotate):几乎所有平衡树的操作都基于树旋转操作(也有部分基于重构,如替罪羊树),通过旋转操作可以使得树趋于平衡。对一棵查找树(search tree)进行查询、新增、删除等动作,所花的时间与树的高度h成比例,并不与树的容量 n 成比例。如果可以让树维持平衡,也就是让h维持在 O ( log n ) {\displaystyle O(\log {n})} ,且最大的数。

查询后继(successor):后继定义为大于,且最小的数。

在维护节点大小(size)后,可以支持以下操作:

查询排名(rank):排名定义为比x小的数的个数加一。

查询第k大:即排名为的数。

以下数据结构支持平衡树大多数操作,但实现有根本不同:

用于表示有序的线性数据结构,如优先队列、关联数组、键(key)-值(value)的映射等。自平衡的二叉查找树与哈希表的相比,各有优缺。平衡树在按序遍历所有键值时是量级最优的,哈希表不能。自平衡二叉查找树在查找一个键值时,最坏情况下时间复杂度优于哈希表, O ( log n ) {\displaystyle O(\log n)} 对比 O ( n ) {\displaystyle O(n)} ;但平均时间复杂度逊于hash表, O ( log n ) {\displaystyle O(\log n)} 对比 O ( 1 ) {\displaystyle O(1)}

平衡树的排序方法,虽然在平均时间复杂度上也是 O ( n log n ) {\displaystyle O(n\log n)} ,但由于cache性能、树的调整操作等,性能上不如快速排序、堆排序、归并排序等同为 O ( n log n ) {\displaystyle O(n\log n)} 复杂度的排序。

相关

  • 延胡索酸延胡索酸(Fumaric Acid),又名富马酸、紫堇酸或地衣酸,即反丁烯二酸(IUPAC名为(E)-丁烯二酸),是一种无色、易燃的晶体,由丁烯衍生出的羧酸。它的化学式是C4H4O4。燃烧延胡索酸会释
  • 坎德勒县坎德勒县(Candler County)是位于美国佐治亚州东部的一个县,面积644平方公里,县治梅特。根据2000年美国人口普查,共有人口10,321。坎德勒县成立于1914年11月3日。历史 | 经济 |
  • 诉诸对立诉诸反对(argument by contradiction),是一种非形式谬误,是不断宣称与对方矛盾的主张,而不提出理据。网络上又俗称这样不断坚持自己观点的做法为“跳针”。
  • 心理动力心理动力学,也叫动力心理学,从广泛的意义上来讲,是一种强调系统研究塑造人类行为的心理力量的心理学方法。包括研究行为、感受、情感及彼此和早期经历的联系。它特别对意识、动
  • 奥古斯丁岛奥古斯丁火山是美国的火山,位于库克湾,由阿拉斯加州负责管辖,长12公里、宽10公里,海拔高度1,260米,山体在40,000年前形成,最近一次火山喷发在2006年发生。坐标:59°21′48″N 153°
  • 四氯化钛四氯化钛,或氯化钛(IV),是化学式为 TiCl4 的无机化合物。四氯化钛是生产金属钛及其化合物的重要中间体。室温下,四氯化钛为无色液体,并在空气中发烟,生成二氧化钛固体和盐酸液滴的
  • 季莫菲·尼古拉耶维奇·格拉诺夫斯基季莫菲·尼古拉耶维奇·格拉诺夫斯基(俄语:Тимофе́й Никола́евич Грано́вский,1813年3月9日-1855年10月4日),俄国历史学家、思想家、教育家,俄国中
  • 日本国铁211系电力动车组日本国铁211系电力动车组是日本国有铁道(日本国铁)设计及制造的直流用近郊型电力动车组,于1985年投入服务。国铁于1987年民营化和分割后,这款列车被配属予东日本旅客铁道(JR东日
  • 佩里 (佛罗里达州)佩里(英语:Perry),是美国佛罗里达州下属的一座城市。建立于1903年。面积约 为24.1平方公里(约合9.3平方英里)。根据2010年美国人口普查,该市有人口7,060人。论人口在本州排行第 184
  • 要员保护要员保护(英语:executive protection)或称重要人物保护(VIP protection)是保镖的其中一种专业范畴,是针对要员提供近身保护,包括事前进行风险评估,确保要员的安全不受威胁,并且为到要