二叉搜索树的树高与性能
前面笔者介绍了二叉搜索树的实现和性能分析,查询,插入和删除等操作均线性正比于二叉树的高度。在最坏的情况下,线性表退化为列表,二叉搜索树的性能会降低至O(n)。因此,如果能控制树高,则二叉搜索树的性能会明显提升
理想平衡与适度平衡
理想平衡
既然二叉搜索树的性能主要影响与树高,则应该在节点数目固定的前提下,尽可能降低树高。也意味着,应尽可能地使兄弟子树的高度彼此接近,即全树尽可能的平衡。当然根据二叉树的特性,规模为n的二叉树,高度不可能小于log以2为底n的对数。如果高度为log以2为底n的对数的平衡二叉树,则称为理想平衡树。完全二叉树,满二叉树均属于理想平衡树。
适度平衡
理想平衡的条件过于严格,在实际中意义不大,因为出现的概率实现太小了。因此有必要定制一种规则,限制两个兄弟子树的高度差在一定的范围内。满足这个限制条件则为平衡二叉树。例如:AVL树,伸展树,红黑树,kd-树都属于适度平衡树。因此均属于平衡二叉搜索树
二叉搜索树到平衡二叉搜索树的等价变化
如果两个二叉搜索树的中序遍历是一致的,则他们彼此等价。如下图所示: