1.紅黑樹和自平衡二叉(查找)樹區別 2.紅黑樹與B樹的區別


1.紅黑樹和自平衡二叉(查找)樹區別

1、紅黑樹放棄了追求完全平衡,追求大致平衡,在與平衡二叉樹的時間復雜度相差不大的情況下,保證每次插入最多只需要三次旋轉就能達到平衡,實現起來也更為簡單。
2、平衡二叉樹追求絕對平衡,條件比較苛刻,實現起來比較麻煩,每次插入新節點之后需要旋轉的次數不能預知。

AVL樹是最早出現的自平衡二叉(查找)樹
紅黑樹和AVL樹類似,都是在進行插入和刪除操作時通過特定操作保持二叉查找樹的平衡,從而獲得較高的查找性能。
紅黑樹和AVL樹的區別在於它使用顏色來標識結點的高度,它所追求的是局部平衡而不是AVL樹中的非常嚴格的平衡。

紅黑樹是犧牲了嚴格的高度平衡的優越條件為代價紅黑樹能夠以O(log2 n)的時間復雜度進行搜索、插入、刪除操作。
此外,由於它的設計,任何不平衡都會在三次旋轉之內解決。
當然,還有一些更好的,但實現起來更復雜的數據結構能夠做到一步旋轉之內達到平衡,但紅黑樹能夠給我們一個比較“便宜”的解決方案。
紅黑樹的算法時間復雜度和AVL相同,但統計性能比AVL樹更高.

 

 

 

 

 

2.紅黑樹與B樹的區別

(B-樹,即為B樹。因為B樹的原英文名稱為B-tree,而國內很多人喜歡把B-tree譯作B-樹,其實,這是個非常不好的直譯,很容易讓人產生誤解。如人們可能會以為B-樹是一種樹,而B樹又是一種一種樹。而事實上是,B-tree就是指的B樹。特此說明。)


B樹又叫平衡多路查找樹。B樹是為了磁盤或其它存儲設備而設計的一種多叉(下面你會看到,相對於二叉,B樹每個內結點有多個分支,即多叉)平衡查找樹。與紅黑樹很相似,但在降低磁盤I/0操作方面要更好一些。 許多數據庫系統都一般使用B樹或者B樹的各種變形結構,如下文即將要介紹的B+樹,B*樹來存儲信息。

紅黑樹與B樹的區別在於,B樹的結點可以有許多子女,從幾個到幾千個。那為什么又說B樹與紅黑樹很相似呢?因為與紅黑樹一樣,一棵含n個結點的 B樹的高度也為O(lgn) ,但可能比一棵紅黑樹的高度小許多,應為它的分支因子比較大。所以, B樹可以在O(logn)時間內,實現各種如插入(insert),刪除(delete)等動態集合操作


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM