B-tree

爱跑步的乌龟發表於2024-07-20

B-tree
每個節點維護兩個資料,並指向最多 3 個子節點。如圖 3 個子節點的資料分別為:小於 17, 17 ~ 35 ,大於 35。

假設,從上圖中查詢 10 這個數,步驟如下:

  1. 找到根節點,對比 10 與 17 和 35 的大小,發現 10 < 17 在左子節點,也就是第 2 層節點;

  2. 從根節點的指標,找到左子節點,對比 10 與 8 和 12 的大小,發現8 < 10 < 12,資料在當前節點的中間子節點,也就是第 3 層節點;

  3. 通過上步節點的指標,找到中間子節點(第 3 層節點),對比 10 與 9 和 10 的大小,發現 9 < 10 == 10,因此找到當前節點的第二數即為結果。

加上忽略的 12 個資料,從 26 個資料中查詢一個數字 10,僅僅用了 log3(26)≈ 3次,而如果用平衡二叉樹,則需要log2(26)≈ 5 次,事實證明,多叉樹確實可以再次提高查詢效能。

多叉樹是在二分查詢樹的基礎上,增加單個節點的資料儲存數量,同時增加了樹的子節點數,一次計算可以把查詢範圍縮小更多。

優點:二叉平衡樹的基礎上,使載入一次節點,可以載入更多路徑資料,同時把查詢範圍縮減到更小。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
有夢想的人睡不著,沒有夢想的人睡不醒。