一. 极端退化
BST在最坏情况下的时间复杂度为树的高度,未能得到有效的控制。
在极端条件下,所有节点的度数都不超过1
二. 平均高度
1.随机生成
对于任何一组关键码词条,考察它所有可能的排列,将关键码依次插入一颗初始值为空的树。当关键码为n时, 可能的生成序列有n!种。
n!颗BST树平均高度为logn。(有重复)
2.随机组成
将所有的n个关键码,视作n个互异的积木。在符合BST顺序性要求的前提下,考察它们总能拼接出多少棵拓扑结构互异的BST。可以证明,如此所得BST的总数,恰好为卡特兰数catalan(n),所有BST的平均高度值为根号n。(更可靠)
三. 理想+适度
1. 节点数目固定时,左右兄弟子树高度越接近平衡,全树也将倾向于更低。
2. 满二叉树,完全二叉树能达到此平衡状态。
3. 理想平衡出现概率极低,维护成本高,故须适当地放松标准。
4. 适度平衡的BST,称作平衡二叉搜索树BBST(Balanced Binary Search Tree)
四. 歧义=等价
结构不尽相同的两个BST树,它们的中序遍历序列有可能完全雷同,即中序遍历序列的歧义性。
五. 等价变换 + 旋转调整
1.节点V拥有一个左孩子C,它们属下分别有三棵子树X,Y,Z,经过顺时针Zig旋转,顺序性与单调性依然保持。
2.经过逆时针Zag旋转
3.所有的等价变换始终遵循两个重要准则
(1)局部性:比如上图的旋转都局限在局部的V和C两个节点之间,因此所牵扯的节点总数是常数。则这类操作所需要的计算时间可严格控制在O(1)。
(2)将一棵刚刚失衡的BBST,重新恢复为一棵BST的过程,累计需要执行的这样的操作次数不要过多,最多不能超过O(logn)。