平衡树

✍ dations ◷ 2025-01-06 23:33:00 #数据结构,树结构

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

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

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

相关

  • 配子后隔离生殖隔离,又称生殖屏障,在生物学上通常指由于生殖方面的原因,即使地缘关系相近,但物种不同的类群之间不能互相交配,或不易交配成功的隔离机制。一般来讲生殖隔离用以定义物种,不具
  • 萨巴捷保罗·萨巴捷(法语:Paul Sabatier,1854年11月5日-1941年8月14日),法国化学家,出生于法国卡尔卡松,逝于图卢兹。在1912年,他与维克多·格林尼亚共同获得诺贝尔化学奖。1874年,萨巴捷进
  • 能源部长美国能源部长(英语:The United States Secretary of Energy),是美国能源部的领导人,为总统内阁成员,名列总统继任顺序第十五位。部长职位于1977年10月1日,总统吉米·卡特签署《美国
  • 1445年约前1445年,古埃及法老图特摩斯三世打败了米坦尼国王,夺占米坦尼王国位于幼发拉底河西岸的土地。
  • 耶路撒冷圣墓骑士耶路撒冷圣墓骑士团(拉丁语:Ordo Equestris Sancti Sepulcri Hierosolymitani, OESSH),也称圣墓骑士团,为天主教教宗骑士团(英语:Papal order of knighthood),创立时名称为“圣墓守护
  • 范妮·罗·哈默尔芬妮·露·哈默(英语:Fannie Lou Hamer,1917年10月6日-1977年3月14日),美国黑人选举权维权人士,非裔美国人民权运动家和活跃于密西西比州的慈善家。她对于密西西比州自由之夏有着举
  • 帕朗卡拉亚帕朗卡拉亚或译巴冷加拉椰,是印度尼西亚中加里曼丹省的首府。 该市人口是160018人(2000年人口普查)。印尼第一任总统苏加诺曾建议将印尼首都从雅加达迁移到这一座城市。2001年
  • 封条封条(英语:Seal)在古代又称封识,是商人在货柜物品上贴上一个条状贴纸(相当于物品的身份证),用途是避免货柜在运输途中被人掉包,失窃的风险,持有者大多为:货主(付货人)、航商和海关等三类
  • 球突千孔珊瑚球突千孔珊瑚(学名:)为千孔珊瑚科千孔珊瑚属下的一个种。
  • 金色池塘《金色池塘》(英语:),是一部根据同名百老汇舞台剧的著名美国电影。该片由亨利·方达和凯瑟琳·赫本主演,1981年12月4日上映,次年获得奥斯卡最佳影片、最佳导演、最佳摄影、最佳女