2018.9.12 B樹總結

1. B-Treehtml

B-樹是一種平衡的多路查找樹,它在文件系統中頗有用。性能

1.1 B-Tree 特性指針

  • 關鍵字集合分佈在整顆樹中;
  • 任何一個關鍵字出現且只出如今一個結點中;
  • 搜索有可能在非葉子結點結束;
  • 其搜索性能等價於在關鍵字全集內作一次二分查找;
  • 自動層次控制;

1.2 B-Tree搜索原理htm

B-樹的搜索,樹中查找結點,結點中查找關鍵字。blog

即從根結點開始,對結點內的關鍵字(有序)序列進行二分查找,若是命中則結束,不然進入查詢關鍵字所屬範圍的兒子結點;重複,直到所對應的兒子指針爲空,或已是葉子結點;所以,B-Tree的查找過程是一個順指針查找結點和在結點的關鍵字中進行查找的交叉進行的過程。索引

2. B+Tree原理

B+樹是應文件系統所需而產生的一種B-樹的變形樹。搜索

2.1 B+Tree特性鏈表

     B+Tree的搜索與B-Tree也基本相同,區別是B+Tree只有達到葉子結點才命中(B-Tree能夠在非葉子結點命中),其性能也等價於在關鍵字全集作一次二分查找;數據

  • 全部關鍵字都出如今葉子結點的鏈表中(稠密索引),且鏈表中的關鍵字剛好是有序的;
  • 不可能在非葉子結點命中;
  • 非葉子結點至關因而葉子結點的索引(稀疏索引),葉子結點至關因而存儲(關鍵字)數據的數據層;
  • 更適合文件索引系統

2.2 B+Tree與B-Tree區別

  1. 非葉子結點的子樹指針與關鍵字個數相同;
  2. 非葉子結點的子樹指針P[i],指向關鍵字值屬於[K[i], K[i+1])的子樹(B-樹是開區間);
  3. 爲全部葉子結點增長一個鏈指針;
  4. 全部關鍵字都在葉子結點出現;

2.3 對B+樹進行兩種搜索運算

  • 循葉結點鏈順序搜索
  • 另外一種是從根結點開始,進行自頂向下,直至葉結點的隨機搜索。

3. B*Tree

     B*Tree是B+樹的變體,在B+Tree的非根和非葉子結點再增長指向兄弟的指針;B*樹分配新結點的機率比B+樹要低,空間使用率更高,將結點的最低利用率從1/2提升到2/3。

 

 

參考:《B-Tree, B+Tree, B*樹介紹》:http://blog.sina.com.cn/s/blog_6776884e0100ohvr.html

相關文章
相關標籤/搜索