1. 程式人生 > >演算法和資料結構——B數和B+數

演算法和資料結構——B數和B+數

直接上乾貨。首先,基本性質必須爛熟於心。

B樹的基本要點:

  1. 又稱多路平衡查詢樹——
  2. B樹的階:B樹中所有節點的孩子節點數的最大值。通常用m表示。
  3. 一顆m階B數或為空樹,或為滿足下列特性的m叉數:
    1. 樹中每個節點至多有m顆子樹(至多含有m-1個關鍵字);
    2. 若根節點不是終端節點,則至少有兩顆子樹;
    3. 除根節點外,所有的非葉節點至少有「m/2」(取上整)顆子樹(即至少含有「m/2」-1個關鍵字);
    4. 所有非葉子節點結構:n P0 K1 P1 K2 P2……Kn Pn,其中K是關鍵字,P為指向子樹的指標。關鍵字K大於其左邊的指標P指向的子樹的關鍵字,指標P指向的子樹的關鍵字均大於其左邊的關鍵字K;
    5. 所有的葉節點都出現在同一層次上,並且不帶資訊;(是不是有點像完全m叉樹?各個節點的平衡因子都為0)
    6. B數的高度——磁碟的存取次數:
      1. B樹中每個節點最多有m顆子樹,m-1個關鍵字,所以高度為h(不包含最後一層的葉節點)的m階B樹種關鍵字的個數滿足n<=(m-1)*(1+m1+m2+m(h-1))=mh-1,因此有h>=logm(n+1);