是一個Balanced m-way search tree,主要用於external search/sort,滿足:
2 ≤ Root's Degree ≤ m
除了root和failure nodes外,其餘節點滿: [m2]≤node′s degree≤m[\frac{m}{2}]≤node's\ degree≤m[2m]≤node′s degree≤m
所有failure nodes皆位於同一level(Balanced)
B tree of order 3又稱2-3 tree;B tree of order 4又稱2-3-4 tree
圖示:
高度h的B Tree of order m
最多節點數 =mh−1m−1=\frac{m^h-1}{m-1}=m−1mh−1
最多資料數 =mh−1=m^h-1=mh−1
最少節點數: root's degree = 2,nodes' degree = [m2][\frac{m}{2}][2m]
1+2+2[m2]+2[m2]2+2[m2]3+...+2[m2]h−2 =1+2([m2]0+[m2]1+[m2]2+...+[m2]h−2) =1+2([m2]h−1−1[m2]−1)1+2+2[\frac{m}{2}]+2[\frac{m}{2}]^{2}+2[\frac{m}{2}]^{3}+...+2[\frac{m}{2}]^{h-2}\\\ \ = 1+2([\frac{m}{2}]^{0}+[\frac{m}{2}]^{1}+[\frac{m}{2}]^{2}+...+[\frac{m}{2}]^{h-2})\\\ \ =1+2(\frac{[\frac{m}{2}]^{h-1}-1}{[\frac{m}{2}]-1})1+2+2[2m]+2[2m]2+2[2m]3+...+2[2m]h−2 =1+2([2m]0+[2m]1+[2m]2+...+[2m]h−2) =1+2([2m]−1[2m]h−1−1)
最少資料數
1+2([m2]h−1−1[m2]−1)∗([m2]−1)=2[m2]h−1−11+2(\frac{[\frac{m}{2}]^{h-1}-1}{[\frac{m}{2}]-1})*([\frac{m}{2}]-1)\\=2[\frac{m}{2}]^{h-1}-11+2([2m]−1[2m]h−1−1)∗([2m]−1)=2[2m]h−1−1
search(x)找到適合存放的節點
檢查該節點是否overflow
overflow : Data數 > m-1,作split處理,接著檢查父點
split
未overflow: Data數 ≤ m-1,直接放入x
步驟流程圖:
Rotation
Combine
Last updated 7 years ago