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

本文探讨了平衡二叉搜索树的实现原理,包括理想平衡与适度平衡的概念,以及如何通过旋转调整实现平衡。介绍了zig和zag两种旋转方式,这些局部操作能在常数时间内完成,用于保持和恢复树的平衡状态,从而优化查询、插入和删除的性能。
最低0.47元/天 解锁文章
1056

被折叠的 条评论
为什么被折叠?



