平衡树

✍ dations ◷ 2025-12-04 22:46:58 #数据结构,树结构

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

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

旋转(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)} 复杂度的排序。

相关

  • 阿德莱德级巡防舰托德造船厂(英语:Todd Pacific Shipyards)西雅图分部澳洲:澳大利亚海洋工程联合公司(AMECON,今特尼克斯防务)维多利亚省威廉斯顿 (维多利亚州)分部4,500海里(8,300千米;5,200英里)Mk 1
  • 摄影处理冲洗 (又称底片冲洗) 是一种利用化学方法, 让底片或相纸在曝光之后产生正像或负像的过程。 这个过程让底片上的潜像 (不可见且容易受可见光破坏) 转变为稳定可见的影像。大多
  • 姬蛙甲型勒托病毒一型姬蛙甲型勒托病毒一型(学名:Microhyla alphaletovirus 1,MLeV)是勒托病毒亚科(Letovirinae)及甲型勒托病毒属(Alphaletovirus)的唯一一种病毒,属于冠状病毒科,为一种在小雨蛙(Microhyla
  • 信陵君信陵君(?-前243年),姬姓,魏氏,名无忌,中国战国时代魏国人,是魏昭王的儿子,魏安釐王同父异母的弟弟,后世亦称魏公子。信陵君是战国时代著名的政治家、军事家,魏安釐王时期官至魏国上将军,
  • 有机铜化合物有机金属化学中的有机铜化合物,是指含有碳与铜键结的化学键的有机物。有机铜化学是一门描述有机铜化合物相关的物理特性、合成以及反应的学科。 在有机化学中它们通常为反应
  • 板齿犀板齿犀属(学名:)是一类已经灭绝的大型犀牛,平均高约2米及长5米,前额上有长达2米的角,估计重达5吨。它的脚较其他犀牛长,适合跃步,姿势有点像马,有可能善于奔跑。它的牙齿像现今的马,可
  • 加勒菲斯绿地加勒菲斯绿地(僧伽罗语:ගාලු මුවදොර පිටිය、泰米尔语:காலிமுகத் திடல்)是斯里兰卡科伦坡的金融和商业区中心沿着印度洋海岸绵延半公里的海滨大道,1
  • 弗朗索瓦·约瑟夫·勒费弗尔弗朗索瓦·约瑟夫·勒费弗尔,第一代但泽公爵(法语:François Joseph Lefebvre, First Duc de Dantzig;1755年10月25日-1820年9月14日)法国大革命和拿破仑战争期间的法国军事指挥官
  • 儿玉誉士夫儿玉誉士夫(日语:児玉 誉士夫/こだま よしお ;1911年2月18日-1984年1月17日),日本右翼运动家,于第二次世界大战时在上海担任“儿玉机关”领导人,战后于韩战时期在美国中央情报局掩护
  • 中国科学院北京基因组研究所中国科学院北京基因组研究所成立于2003年11月,加挂牌子国家生物信息中心。现任所长为薛勇彪研究员。