平衡树

✍ dations ◷ 2025-11-22 23:39:35 #数据结构,树结构

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

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

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

相关

  • 三糖三糖(英语:Trisaccharide),是由三种单糖组成的碳水化合物,其中有两种糖基键连在一起。1) Lenhinger Principles of Biochemistry by Albert L. Lehninger, David L. Nelson, and
  • 新汉音陶文 ‧ 甲骨文 ‧ 金文 ‧ 古文 ‧ 石鼓文籀文 ‧ 鸟虫书 ‧ 篆书(大篆 ‧  小篆)隶书 ‧ 楷书 ‧ 行书 ‧ 草书漆书 ‧  书法 ‧ 飞白书笔画 ‧ 
  • 旅游组织商会是指由商人为达到某种目标,通过签署协议,自愿组成的团体或组织。协会是指由个人、单个组织为达到某种目标,通过签署协议,自愿组成的团体或组织。中文“协会”一词蕴涵英文As
  • 迈克耳孙-莫雷实验迈克耳孙-莫雷实验是为了验证“以太”存在与否而做的一个实验,1887年由阿尔伯特·迈克耳孙与爱德华·莫雷合作在美国的克利夫兰进行。当时的物理理论认为,光的传播介质是“以太
  • 异苯并呋喃异苯并呋喃(Isobenzofuran)是一种杂环化合物,结构上由苯环和呋喃环稠合而成,化学式C8H6O,是苯并呋喃的异构体。异苯并呋喃有高反应活性,迅速聚合。仅能在低温下能制备得到。虽然其
  • 巴普提斯蒂娜小行星298是小行星带里一颗由奥古斯特·沙卢瓦在1890年9月9日于法国尼斯所发现的小行星。在2007年9月,美国科罗拉多州美国西南研究院的研究人员威廉·波特克(William Bottke)与
  • 中国洪水1998年中国洪水是1998年夏天在中国的长江、松花江、嫩江等主要河流干支流发生的洪水灾害,造成4150人死亡,直接经济损失2551亿元人民币。此次的长江洪水程度仅次于1954年,是长江
  • 欧盟中最大城市本表记录欧洲联盟内人口超过三十万的城市。列表中的人口数均为城市行政界限内的统计,而不是城市圈的人口统计。表中,用粗体字标识的城市为该国首都。
  • 姓氏桥马来西亚槟城州槟岛东北部海边的海上桥状木屋区,各桥主要以姓氏宗亲分而聚居,最长的木桥向海延伸约500米,有者较短,左右建满了木屋。原本共有9座姓氏桥,但在城市发展巨轮下有两座
  • 小里镇小里镇,是中华人民共和国河北省保定市容城县下辖的一个乡镇级行政单位。小里镇下辖以下地区:王村、胜利庄村、许家园村、西牛营村、东小里村、西小里村、新庄窠村、黑龙口村、