資料結構之B樹與B 樹

2021-10-05 15:35:51 字數 1651 閱讀 6345

2023年,提出了一種用於外查詢的樹,名為b樹,b樹是一顆平衡多叉樹,允許乙個節點有多個孩子,b樹也常常稱為m樹,m為乙個節點的子節點數

b樹滿足以下標準特徵:

1.根結點至少有兩個子女。

2.每個中間節點都包含k-1個元素和k個孩子,其中 m/2 <= k <= m

3.每乙個葉子節點都包含k-1個元素,其中 m/2 <= k <= m

4.所有的葉子結點都位於同一層。

5.每個節點中的元素從小到大排列,節點當中k-1個元素正好是k個孩子包含的元素的值域分劃

下面是總結的以通俗易懂的特徵:

1.乙個節點最多擁有m個孩子,即有m-1個key.

2.節點是有序儲存的

3.修復的方式是向上**

下面演示乙個b樹的插入過程,更直觀的了解b樹的特徵:

這裡以最多兩個key,三個節點的樹作為演示.2-3樹:

向根節點為 5,9的樹中插入2,3,7,8,10,11,6.

b+樹是一種樹資料結構,通常用於資料庫和作業系統的檔案系統中。b+樹的特點是能夠保持資料穩定有序,其插入與修改擁有較穩定的對數時間複雜度。b+樹元素自底向上插入,這與二叉樹恰好相反

b+樹的特性:

1.有k個子樹的中間節點包含有k個元素(b樹中是k-1個元素),每個元素不儲存資料,只用來索引,所有資料都儲存在葉子節點。

2.所有的葉子結點中包含了全部元素的資訊,及指向含這些元素記錄的指標,且葉子結點本身依關鍵字的大小自小而大順序鏈結。

3.所有的中間節點元素都同時存在於子節點,在子節點元素中是最大(或最小)元素。

下面是b+樹的插入過程,同時體現了b+樹的特徵:

這裡以最多兩個key,三個節點的樹作為演示.2-3樹:

向根節點為 5,9的樹中插入2,3,7,8,10,11,6.

b樹:(1)多路,非二叉樹

(2)每個節點既儲存索引,又儲存資料

(3)搜尋時相當於二分查詢

b+樹:

(1)多路非二叉

(2)只有葉子節點儲存資料

(3)搜尋時相當於二分查詢

(4)增加了相鄰接點的指向指標

1)b+樹查詢時間複雜度固定是logn,b-樹查詢複雜度最好是 o(1)。

(2)b+樹相鄰接點的指標可以大大增加區間訪問性,可使用在範圍查詢等,而b-樹每個節點 key 和 data 在一起,則無法區間查詢。

(3)b+樹更適合外部儲存,也就是磁碟儲存。由於內節點無 data 域,每個節點能索引的範圍更大更精確

(4)注意這個區別相當重要,是基於(1)(2)(3)的,b-樹每個節點即儲存資料又儲存索引,所以磁碟io的次數很少,b+樹只有葉子節點儲存,磁碟io多,但是區間訪問比較好。

b-樹主要應用在檔案系統

為了將大型資料庫檔案儲存在硬碟上 以減少訪問硬碟次數為目的 在此提出了一種平衡多路查詢樹——b-樹結構 由其效能分析可知它的檢索效率是相當高的 為了提高 b-樹效能』還有很多種b-樹的變型

b+樹在資料庫索引中的應用

目前大部分資料庫系統及檔案系統都採用b-tree或其變種b+tree作為索引結構

資料結構之B樹 B 樹 B 樹 B 樹

b 樹b 樹 b b b 樹是為了磁碟或其它儲存裝置而設計的一種平衡多路查詢樹 相對於二叉,b樹每個內節點有多個分支 與紅黑樹相比,在相同的的節點的情況下,一顆b樹的高度遠遠小於紅黑樹的高度.b樹上操作的時間通常由訪問磁碟的時間和cpu計算時間這兩部分構成,而cpu的速度非常快,所以b樹的操作效率取...

資料結構之B 樹 B 樹

b樹的概念是為了解決一些現實問題而提出的,當資料量太大時,而記憶體中又無法儲存這麼多的資料,那麼就需要將資料儲存在磁碟上,如果繼續採用平衡樹的方法就會帶來一些問題,平衡樹每個節點都會分為兩個節點,那麼當資料太大的時候,樹的高度也會不斷增減,io操作的次數也隨之增加,所以需要降低樹的高度,所以才有了乙...

資料結構 B樹與B 樹

b樹 多路平衡查詢樹 b 樹 由二叉查詢樹進化而來 m叉查詢樹 由分塊查詢進化而來 多級分塊查詢 根節點的關鍵字範圍 1,m 1 根節點的關鍵字範圍 2,m n個關鍵字對應n 1個分支 n個關鍵字對應n個分支 關於分支是一樣的 根節點分支數範圍 2,m 除根節點外,其他節點數範圍 m 2,m 所有節...