平衡树

✍ dations ◷ 2025-01-07 07:00:26 #数据结构,树结构

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

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

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

相关

  • 条目肺炎(pneumonia),是指肺部出现发炎的症状,主要是肺泡受到影响。肺炎常见的症状包括有痰的咳嗽、胸痛、发热及呼吸困难。症状可能由轻微到严重不一。特别高龄的长者或新生儿可能
  • 道路罗马道路(拉丁语:viae,单数为via)是古罗马的重要基础建设,由公元前500年开始,并随罗马共和国及罗马帝国版国的扩大而延伸这些罗马道路为罗马军队、官员及平民带来便捷的交通路径,更
  • 德堪多奥古斯丁·彼拉姆斯·德堪多(法语:Augustin Pyramus de Candolle或Augustin Pyrame de Candolle,1778年2月4日-1841年9月9日),瑞士植物学家,他首先提出了“自然战争”的概念,也因此
  • 犹太教与基督教犹太教与基督教:犹太教是西亚地区的游牧民族希伯来人中产生的宗教,后来在犹太教的基础上衍生出了基督教。犹太教和基督教有相同或相近之处,也有不同或相反之处。基督教借用了犹
  • 11-β11β-羟基类固醇脱氢酶(HSD-11β或11β-HSD)是一类催化惰性十一酮产物(可的松)转化为活性的皮质醇或其逆反应的酶,从而调节糖皮质激素进入类固醇受体的途径:因此,这种酶的两种底物
  • 菜蓟属菜蓟属(学名:Cynara)是菊科下的一个属,包含了约十种类似蓟的多年生植物,原生种分布于环地中海区域、非洲西北部及加那利群岛。菜蓟属植物常被一些鳞翅目物种的幼虫作为食物。而当
  • 内在活性效能(英语:efficacy),又称为内在活性(英语:Intrinsic activity,缩写IA)在药理学中指药物在受体上能产生的最大反应。这和药物与受体的结合亲和性不同,也和测量效价强度的EC50不同。19
  • 戴夫·马斯泰恩戴夫·马斯泰恩(英语:Dave Mustaine,1961年9月13日-),全名大卫·斯科特·马斯泰恩(David Scott Mustaine),美国重金属乐团麦加帝斯(Megadeth)的吉他手、歌手、主要曲作家。也曾经是金属
  • 米良美一米良美一(日语:米良 美一,1971年5月21日-)是一名出生于宫崎县西都市的日本男性声乐家。擅于以假声男高音演唱,个人的音域范围为3个半8度音阶。身高142.7cm。 米良美一出生于西都市
  • 康古鲁康古鲁(满语:ᡴᠠᠩᡤᡡᡵᡠ,穆麟德:;?-1588年),一作康古六,哈达那拉氏,哈达万汗王台私生子,先与其兄扈尔干争夺国主之位,后联合叶赫、幼弟孟格布禄与其侄岱善争斗,最终三分哈达而有其一