0
点赞
收藏
分享

微信扫一扫

小红书笔记发布软件 批量上传视频

七千22 2023-04-26 阅读 52

目录

基本介绍

平衡因子

平衡二叉树 

平衡二叉树的高度 


基本介绍

什么是平衡二叉树?

以一个例子来解释一下:

搜索树结点按不同的插入次序,将会导致不同的深度和平均查找长度ASL

 

在二叉搜索树中查找一个元素: 

 通过上面的例子,我们可以看到方式b的平均查找长度最短,在观感上结点的分布也比较均匀。

所以二叉树,我们要求比较平衡,才能够让查找的长度更短一些。

而如何衡量一颗二叉树平衡不平衡呢?

  1. 是左右两边的结点数差不多
  2. 是左右两边的高度差不多

这样我们就认为基本上平衡,即为平衡二叉树。

平衡因子

平衡二叉树 

下面来判断一下以下几颗二叉树是否为平衡二叉树:

(1)

(2)

 

(3) 

 先来看第一棵二叉搜索树:

再来看第二棵二叉搜索树:

 

最后看第三棵二叉搜索树:

 

平衡二叉树的高度 

我们要二叉树平衡,其目的是为了让二叉树的高度更低一些,

越平衡的二叉树高度就越低。

一棵结点总数为n的完全二叉树高度为 h = log2n,

那么平衡二叉树的高度是否能达到{log_{2}}^{n}呢?

n_{h}为 高度为h的平衡二叉树的最少结点数。 结点数最少时: 

总结出: 

可以得到一个公式:n_{h} = n_{h-1} + n_{h-2} + 1 

我们会发现,这个公式有点眼熟,是与斐波那契序列的公式有点像。

从这里我们就来分析一下nh跟斐波那契序列的F_{i}有什么关系。

 

在数学上,F_{i}有一个公式: F_{i}\approx \frac{1}{\sqrt{5}}\left ( \frac{1+\sqrt{5}}{2} \right )^{i}

 当i逐步增大时,F_{i}大致等于公式算出来的值。

F_{i}是一个指数函数。

根据我们上面分析出来的F_{i}n_{h}的关系,就可以代入得到n_{h}的相关公式。

 n_{h}\approx \frac{1}{\sqrt{5}}\left ( \frac{1+\sqrt{5}}{2} \right )^{h+2}-1

所以反过来我们就得到h的表达式:

用自己的想法把他推一遍:

综上所述,我们可以得到结论:

给定结点数为n的AVL树的最大高度为O(log_{2}^{n})


end 


学习自:MOOC数据结构——陈越、何钦铭 

 

 

 

 

 

 

 

 

举报

相关推荐

小红书-笔记灵感-项目总结

小红书 shield

0 条评论