平衡树

✍ dations ◷ 2025-11-19 19:09:10 #数据结构,树结构

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

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

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

相关

  • 安眠药安眠药(英语:Hypnotic) (源自希腊语 Hypnos, sleep(睡眠)),是一类精神药物,用来提升睡眠品质,治疗失眠或术前麻醉,服用过量会致死。目前用于镇静(Sedation)的只有Afloqualone与Cloroqua
  • 厚生省厚生省(日文:こうせいしょう,英文:Ministry of Welfare)是已经废止的日本中央省厅,后来演变为厚生劳动省。“厚生”出自中国古代《尚书》“正德利用厚生惟和”。厚生大臣(日文:こう
  • 燃烧是物体快速氧化,产生光和热的过程。燃烧的本质是氧化还原反应。广义燃烧不一定要有氧气参加,任何发光、发热、剧烈的氧化还原反应,都可以叫燃烧。燃烧需要三种要素并存才能
  • 置换排列(英语:Permutation)是将相异对象或符号根据确定的顺序重排。每个顺序都称作一个排列。例如,从一到六的数字有720种排列,对应于由这些数字组成的所有不重复亦不阙漏的序列,例如
  • 安格尔西岛安格尔西岛(英语:Isle of Anglesey,威尔士语:Ynys Môn),是英国威尔士西北部一岛屿,隔梅奈海峡与大不列颠岛相邻,面积715平方公里,人口69,751人(2011年人口普查),语言主要是威尔士语。安
  • 1938年国际足联世界杯1938年国际足联世界杯于1938年6月4日至19日在法国举行。意大利在决赛中以4–2的比分击败匈牙利,蝉联了世界杯冠军。国际足联将主办国定为法国的决定激怒了南美洲的国家,因为他
  • 六角六片三角孔扭歪无限面体在几何学中,六角六片三角孔扭歪无限面体(日语:六角六片三角孔ねじれ正多面体)是一种由正六边形组成的正扭歪无限面体,具有正三角形的孔洞,由考克斯特和皮特里于1926年时发现,并命名
  • 固体潮固体潮也称陆潮,是指在太阳、月球等天体引力作用下,固体地球产生周期性变化的现象。因为固体地球具有一定弹性,所以在受到其他天体的引力时,跟海洋一样会产生变形。这些变形的实
  • 萨米尔·阿明萨米尔·阿明(阿拉伯语:سمير أمين‎,1931年9月3日-2018年8月12日) ,埃及经济学家,近代新马克思主义的代表人物之一。阿明出生于开罗,父母分别为埃及人与法国人。1947年他前
  • 穆罕默德二世 (奥斯曼帝国)穆罕默德二世,也被称为征服者穆罕默德奥斯曼土耳其语:محمد ثانى‎,土耳其语:II. Mehmet,或称为Fatih Sultan Mehmet,1432年3月30日—1481年5月3日(1481-05-03)(49岁),奥斯曼