平衡树

✍ dations ◷ 2025-11-23 12:16:49 #数据结构,树结构

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

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

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

相关

  • 伪真菌总门伪真菌总门(Pseudofungi)是一个不等鞭毛类的子类群,又被称为丝壶菌总门(Heterokontimycotina) ,由卵菌纲和丝壶菌纲组成。虽然它们的生长形式(菌丝)和营养模式类似于真菌,但大量的生
  • 糙米糙米是稻米脱壳后的米,保留了粗糙的外层(包含米糠<皮层、糊粉层>和胚芽),颜色较精制白米深。 中国南方部分地区也称其为贱米,日本称为玄米,英文称为brown rice(棕米)。糙米磨去外层
  • 因特网信息访问协议因特网信息访问协议(英语:Internet Message Access Protocol,缩写:IMAP;以前称作交互邮件访问协议)是一个应用层协议,用来从本地邮件客户端(如Microsoft Outlook、Outlook Express、
  • 乐观乐观主义(另称乐天派)是指一种对一切事物采与正面看法的观念。是悲观主义的相反词。乐观的人不会想到一件事的缺点与瑕疵,永远以正面的想法对待身边的一切。
  • 康乃狄克州三一大学三一学院(Trinity College) 是位于美国康涅狄格州哈特福德的一所私立文理学院。创立于1823年。其是该州仅次于耶鲁大学的第二古老的学院。它原先是一所男子学院,在1969年开始男
  • 阿罕布拉阿罕布拉 (Alhambra),又译阿尔汉布拉,是美国加利福尼亚州洛杉矶县的一座城市,位于圣盖博谷地区西部,洛杉矶市中心以东7英里(11公里)。阿罕布拉于1903年7月11日建市,2010年人口83,089
  • 陈康顺陈康顺(字思恩,1929年9月25日-2011年5月12日)),生于南京市。国立中兴大学法商学院(今国立台北大学)地政系毕业,政治大学企管所,美国肯尼迪大学企管硕士曾任救国团台北学苑总干事、
  • 铃木敬司铃木敬司(1897年2月6日-1967年9月20日)是第二次世界大战期间日本陆军情报官员,最高军衔是陆军少将。他领导的日本特务机关“南机关”在二战期间支持缅甸独立运动,协助组建缅甸独
  • 宫少华宫少华(1961年-),中学正高级教师,“河南省特级教师”,2009年全国优秀教育工作者,曾任许昌高级中学校长。1975年至1979年,在许昌高中上初中和高中。1979年9月至1983年7月在河南大学历
  • 凤凰山街道 (成都市)凤凰山街道,是中华人民共和国四川省成都市金牛区下辖的一个乡镇级行政单位。凤凰山街道下辖以下地区:金韦社区筹委社区。