平衡树

✍ dations ◷ 2025-11-26 07:24:47 #数据结构,树结构

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

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

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

相关

  • 浅筋膜筋膜是贯穿身体的一层致密结缔组织,它包绕着肌肉、肌群、血管、神经。筋膜分好几层,分别叫浅筋膜、深筋膜、内脏筋膜,它们延绵不断贯穿身体上下。筋膜是致密结缔组织,其内含紧密
  • 痳疯树桐油树(学名:Jatropha curcas),又名麻风树、痳疯树、南洋油桐、黄肿树、假白榄等,为大戟科落叶灌木。其发源地在加勒比海的岛上,但葡萄牙商人把它引进了非洲和亚洲各地,现已分布在
  • 欧洲汽车废气排放标准欧洲汽车废气排放标准是欧盟国家为限制汽车废气排放污染物对环境造成的危害而共同采用的汽车废气排放标准。当前对几乎所有类型的车辆排放的氮氧化物(NOx)、碳氢化合物(HC)、一
  • G. Cuvier乔治·利奥波德·克雷蒂安·弗列德里克·达戈贝尔·居维叶男爵(法语:Baron Georges Léopold Chrétien Frédéric Dagobert Cuvier;1769年8月23日-1832年5月13日),简称乔治·居
  • 阿旃陀石窟坐标:20°33′12″N 75°42′00″E / 20.55333°N 75.70000°E / 20.55333; 75.70000阿旃陀石窟(अजिंठा-वेरूळची लेणी;Ajinṭhā-verūḷacī leṇī)是一个位
  • 扎曲 (澜沧江)扎曲(藏语:.mw-parser-output .uchen{font-family:"Qomolangma-Dunhuang","Qomolangma-Uchen Sarchen","Qomolangma-Uchen Sarchung","Qomolangma-Uchen Suring","Qomolangma-
  • 中川善之助中川善之助(1897年11月18日-1975年3月20日),男性,日本东京都人,民法学者,日本东北大学名誉教授。中川善之助于东京帝国大学法学部毕业后,师事穗积重远研习民法,尤其在家族法领域有着
  • 天主教叶尔加瓦教区天主教叶尔加瓦教区(拉丁语:Dioecesis Ielgavensis、拉脱维亚语:Jelgavas diecēze)是罗马天主教在拉脱维亚的一个教区,属天主教里加总教区。成立于1995年12月2日。 教区包括传统
  • 彼得·莫利纽兹彼得·道格拉斯·莫力纽兹(英语:Peter Douglas Molyneux;/ˈmɒlᵻnjuː/;1959年5月5日-)OBE(大英帝国勋章获得者),也译彼得·莫利纽、彼得·莫利纽克斯、莫利纽伦斯,他是一位英国电子
  • はい“はい”(罗马拼音:Hai)在日语中是对于问题表示肯定时所使用的感叹词,也就是中文里“是”的意思。而否定问题时则是用“いいえ”来表示。“はい”是在日本江户时代时出现的词语,