算法導(dǎo)論B樹筆記

B樹是為磁盤或其他輔助存儲設(shè)計的一種平衡搜索樹。

我理解B樹與紅黑樹等的主要區(qū)別是,紅黑樹假定對樹的操作都在內(nèi)存中,定義兩種操作:
1.關(guān)鍵字與結(jié)點的比較
2.在樹中沿樹的結(jié)構(gòu)爬升或下降
紅黑樹在內(nèi)存進行這兩種操作的時間在同一個數(shù)量級內(nèi)
而在磁盤等輔助存儲設(shè)備的狀況下,這兩種操作的時間相差多個數(shù)量級,爬升和下降操作耗時巨大,所以設(shè)計了B樹來增加操作1,減少操作2
B樹的主要特性就是分支因子很大,樹的高度很小,極大的減少了操作2

B樹的定義

B樹的嚴(yán)格定義有很多項,簡單的說,B樹是一顆分支因子很大的搜索樹,可以想象為 n 叉搜索樹(相對于二叉搜索樹)

可以證明,嚴(yán)格定義的B樹高度會很小,比二叉搜索樹小的多

B樹上的基本操作

基本操作包括搜索、創(chuàng)建、插入

搜索的過程較簡單,是一個從跟結(jié)點向下查找的過程,與二叉搜索樹類似,只是將與單個關(guān)鍵字的比較換為與多個關(guān)鍵字的比較。從某個結(jié)點的比較看,書中給出的方法是順序查找,如果 t 較大的話,二分查找會更有效率。

創(chuàng)建操作很簡單,只是創(chuàng)建一個空的跟結(jié)點。

插入操作不能簡單的插入新的葉結(jié)點,在遇到滿的結(jié)點時要將結(jié)點分裂為兩個結(jié)點,以保證插入新元素后仍然是合法的B樹。

從B樹中刪除關(guān)鍵字

從B樹中刪除關(guān)鍵字非常復(fù)雜,復(fù)雜到書里都不愿意給出代碼,只給了思路和分析。

B樹的刪除操作性能也很高,O(h) 次磁盤操作,O(th) 的 CPU 時間,同插入操作一樣高效。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容