日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

AVL树、splay树(伸展树)和红黑树比较

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 AVL树、splay树(伸展树)和红黑树比较 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

AVL樹、splay樹(伸展樹)和紅黑樹比較

一、AVL樹:

優點:查找、插入和刪除,最壞復雜度均為O(logN)。實現操作簡單

? ? 如過是隨機插入或者刪除,其理論上可以得到O(logN)的復雜度,但是實際情況大多不是隨機的。如果是隨機的,則AVL? ??樹能夠達到比RB樹更優的結果,因為AVL樹的高度更低。如果只進行插入和查找,則AVL樹是優于RB樹的,因為RB樹? ??更多的優勢還是在刪除動作上。

缺點:1)借助高度或平衡因子,為此需要改造元素結構,或額外封裝-->伸展樹可以避免

? ? 2)實測復雜度與理論復雜度上有差距。插入、刪除后的旋轉成本不菲刪除操作后,最多旋轉O(logN)次,(Knuth證明,平?均最壞情況下概率為0.21次),若頻繁進行插入/刪除操作,得不償失。

? ?3)單詞動態調整后,全樹拓撲結構的變化量可達O(logN)次。-->紅黑樹為O(1)

二、伸展樹(splay tree)、

優點、1)無需記錄節點高度和平衡因子,編程實現簡單易行

? ? 2)分攤復雜度為O(logN)

? ? 3)局部性強,緩存命中率極高時,效率甚至可以更高。

?注:伸展樹是根據數據訪問的局部性而來的主要是:1)剛剛被訪問的節點,極有可能在不就之后再次被訪問到;2)將被訪問?的下一個節點,極有可能就處于不就之前被訪問過的某個節點的附近

缺點:1)仍不能保證單詞最壞情況的出現,不適用效率敏感的場合

? ? 2)復雜度分析比較復雜

三、紅黑樹

優點:1)所有的插入、刪除、查找操作的復雜度都是O(logN)

? ? 2)插入操作能夠在最多2次旋轉后達到平衡狀態,而刪除操作更是能夠在一次旋轉后達到平衡狀態。刪除操作有可能導致遞歸的雙黑修正,但是在旋轉之前,只是染色而樹的結構沒有任何實質性的改變,因此速度優于AVL樹。

3)紅黑樹可以保證在每次插入或刪除操作之后的重平衡過程中,全書拓撲結構的更新僅涉及常數個節點。盡管最壞情況下需對O(logN)個節點重染色,但就分攤意義而言,僅為O(1)個。

缺點:左右子樹高度相差比AVL樹大

?


總結

二叉查找樹:

任意一個節點所包含的鍵值,大于等于左孩子的鍵值,小于等于右孩子的鍵值。?
此外,無論是左旋還是右旋,若旋轉之前這棵樹是二叉查找樹,旋轉之后它一定還是二叉查找樹。

平衡樹(AVL樹):

AVL樹中任何節點的兩個子樹的高度最大差別為1,LL,RR,LR,RL旋轉算法。?
對于1百萬個節點的平衡樹,樹的高度為12-20之間,對于10億個節點的平衡樹,樹的高度為18-30之間。

伸展樹:

當某個節點被訪問時,伸展樹會通過旋轉使該節點成為樹根。

紅黑樹:

主要是用它來存儲有序的數據,它的時間復雜度是O(lgn)),效率非常之高.

AVL樹與紅黑樹比較:

AVL是嚴格平衡樹,因此在增加或者刪除節點的時候,根據不同情況,旋轉的次數比紅黑樹要多。(所以AVL樹插入和刪除時間會稍微多)?
紅黑樹是弱平衡的,用非嚴格的平衡來換取增刪節點時候旋轉次數的降低。?
兩者都屬于自平衡二叉樹,那么降低樹的深度自然會提高查找效率。?
兩者查找,插入,刪除的時間復雜度相同O(lgn)

時間復雜度比較

sequential search - 順序查找?
binary search - 二分查找?
BST - 二叉查找樹?
2-3 tree - 平衡樹?
red-black tree - 紅黑樹

?

轉載于:https://www.cnblogs.com/Renyi-Fan/p/8253548.html

總結

以上是生活随笔為你收集整理的AVL树、splay树(伸展树)和红黑树比较的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。