平衡树

✍ dations ◷ 2025-04-02 10:28:59 #数据结构,树结构

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

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

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

相关

  • 犹太-葡萄牙语犹太-葡萄牙语(Judeu-Português,又称卢西塔尼亚语,Lusitanic)是一种大体而言已经迈向绝种的犹太语言。在十六世记之前,犹太-葡萄牙语是葡萄牙犹太人日常生活使用的语言,后来与流
  • 皮部,为汉字索引中的部首之一,康熙字典214个部首中的第一百〇七个(五划的则为第十三个)。就繁体和简体中文中,皮部归于五划部首。皮部通常是从左、右方为部字。且无其他部首可用
  • 米尼美尼斯是传说中第一位将古埃及统一起来的统治者。通常认为他于公元前3100年前创立了古埃及第一王朝。如同古罗马的罗慕路斯,美尼斯被视为古埃及历史的创建者。根据传说,将上下
  • 大城堡清真寺聚集性疫情2020年吉隆坡大城堡清真寺冠状病毒病聚集性疫情是指在2020年2月开始,发生在马来西亚吉隆坡市大城堡社区的占美清真寺所举办的伊斯兰传教士活动的严重急性呼吸道综合征冠状病
  • 江苏巡抚江苏巡抚,为清朝在江苏省设立的一个巡抚职位。顺治二年置江宁巡抚,驻苏州,辖江宁府、苏州府、松江府、常州府、镇江府。顺治十八年,江南布政使分为左、右两位,分驻江宁府、苏州府
  • 东学党东学是朝鲜王朝时期的一个宋明理学思想体系,于1860年由庆州出身的崔济愚创立。信奉东学的集团称为东学党。东学与倡导西方文化的西学相对,东学运动旨在恢复朝鲜民族单一神(하느
  • 八大电视八大电视股份有限公司(英语:Gala Television Corporation),简称八大、GTV,成立于1997年6月13日,2014年至今由台塑永在投资公司持有,主要是经营“八大第一台”、“八大综合台”、“
  • 峡江县峡江县地处江西省中部,隶属于吉安市。别称玉峡,因此地为赣江要冲,江面狭窄,水流湍急,故名峡江。峡江现辖6镇4乡1场,县治原设赣江西岸的巴邱镇,1997年7月1日迁至赣江以东20公里的水
  • 中医药的科学性问题中医的科学性问题,是指受西方医学所影响下的现代中医学,其是否符合现代之世界主流医学(西方医学)的科学标准的问题。在19世纪以后,伴随来自于西方欧洲等国自然科学的传入,居处于东
  • 保罗·戴密微保罗·戴密微(法语:Paul Demiéville,1894年9月13日-1979年3月23日),法国汉学家,敦煌学著名研究学者。戴密微出生于瑞士洛桑。1915年在伦敦开始学习汉语,然后到法国国立东方语言文化