看动画学算法之:平衡二叉搜索树AVL Tree
生活随笔
收集整理的這篇文章主要介紹了
看动画学算法之:平衡二叉搜索树AVL Tree
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
簡介
平衡二叉搜索樹是一種特殊的二叉搜索樹。為什么會有平衡二叉搜索樹呢?
考慮一下二叉搜索樹的特殊情況,如果一個二叉搜索樹所有的節點都是右節點,那么這個二叉搜索樹將會退化成為鏈表。從而導致搜索的時間復雜度變為O(n),其中n是二叉搜索樹的節點個數。
而平衡二叉搜索樹正是為了解決這個問題而產生的,它通過限制樹的高度,從而將時間復雜度降低為O(logn)。
AVL的特性
在討論AVL的特性之前,我們先介紹一個概念叫做平衡因子,平衡因子表示的是左子樹和右子樹的高度差。
如果平衡因子=0,表示這是一個完全平衡二叉樹。
如果平衡因子=1,那么這棵樹就是平衡二叉樹AVL。
也就是是說AVL的平衡因子不能夠大于1。
先看一個AVL的例子:
總結一下,AVL首先是一個二叉搜索樹,然后又是一個二叉平衡樹。
AVL的構建
有了AVL的特性之后,我們看下AVL是怎么構建的。
public class 超強干貨來襲 云風專訪:近40年碼齡,通宵達旦的技術人生總結
以上是生活随笔為你收集整理的看动画学算法之:平衡二叉搜索树AVL Tree的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 在java中使用SPI创建可扩展的应用程
- 下一篇: java安全编码指南之:拒绝Denial