Dou*_*gal 9

想象一下这样的树:

  A
   \
    B
     \
      C
       \
        D
         \
          E
Run Code Online (Sandbox Code Playgroud)

这是一个有效的二叉树,但现在大多数操作都是O(n)而不是O(lg n).


Moh*_*han 6

二叉树的平衡由称为偏斜的属性控制.如果树更倾斜,则访问二叉树的元素的时间复杂度增加.说一棵树

                1
               / \
              2   3
              \    \
               7    4
                     \
                      5
                       \
                        6
Run Code Online (Sandbox Code Playgroud)

以上也是一棵二叉树,但右倾斜.它有7个元素,因此理想的二叉树需要O(log 7)= 3个查找.但是在最坏的情况下,你需要再深一级= 4次查找.所以这里的偏度是常数1.但请考虑树是否有数千个节点.在这种情况下,偏斜将更加可观.因此保持二叉树平衡很重要.

但是,随机二叉树的可能性分析表明,具有n个元素随机二叉树的平均深度为4.3 log n,因此偏差再次成为辩论的主题.所以这实际上是平衡与偏斜的关系.

另一个有趣的事情是,计算机科学家甚至发现了偏斜的优势,并提出了一种称为倾斜堆的倾斜数据结构