1. 程式人生 > >一隻追夢的Javaer

一隻追夢的Javaer

B+ 樹是一種樹資料結構,通常用於資料庫作業系統的檔案系統中。

  • B+ 樹的特點是能夠保持資料穩定有序,其插入與修改擁有較穩定的對數時間複雜度。
  • B+ 樹元素自底向上插入,這與二叉樹恰好相反。

B+ 樹在節點訪問時間遠遠超過節點內部訪問時間的時候,即可作為替代的實現有著實在的優勢。這通常在多數節點在次級儲存比如硬碟中的時候出現。通過最大化在每個內部節點內的子節點的數目減少樹的高度,平衡操作不經常發生,而且效率增加了。這種價值得以確立通常需要每個節點在次級儲存中佔據完整的磁碟塊或近似的大小。

節點結構

  • 在 B+ 樹中的節點通常被表示為一組有序的元素和子指標。
  • 如果此B+樹的序數(order)是m ,則除了根之外的每個節點都包含最少m/2(向下取整)個元素最多 m-1 個元素,對於任意的節點有最多 m 個子指標。
  • 對於所有內部節點,子指標的數目總是比元素的數目多一個。因為所有葉子都在相同的高度上,節點通常不包含確定它們是葉子還是內部節點的方式。
  • 每個內部節點的元素充當分開它的子樹的分離值。例如,如果內部節點有三個子節點(或子樹)則它必須有兩個分離值或元素 a1 和 a2。在最左子樹中所有的值都小於 a1,在中間子樹中所有的值都在 a1 和 a2 之間,而在最右子樹中所有的值都大於 a2。