Titan專欄

          用文字來整理生命

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            44 隨筆 :: 49 文章 :: 19 評論 :: 0 Trackbacks

          B-樹,B-樹是一種非二叉的查找樹。它除了要滿足查找樹的特性,還要滿足以下結構特性:

              一棵M階的B-樹,(1) 樹的根或者是一片葉子(一個節點的樹),或者其兒子數在2和M之間。(2) 除根外,所有的非葉子節點的孩子數在M/2和M之間。(3),所有的葉子節點都在相同的深度。

          要注意的是,B-樹中,所有的數據都存放在葉子節點。而在葉子節點上存放的數據量是有限的。

          B-樹的插入與刪除,唯一要考慮的問題是,讓插入或刪除以后的樹,依然滿足B-樹的特性。在某些情況下,這也是一個比較復雜的過程。說不清楚,看書中的例子。書中的方法其實也都是定式。因為計算機本身不會思考。所以當我們思考計算機要做的工作時,我們要學會像計算機一樣機械的考慮問題。說白了就是if。。。then。。。else。

          B-樹的平均深度為logm/2N。執行查找的平均時間為O(logM)。

          B-樹應用在數據庫系統中。具體指的是應該是索引。它加快了訪問數據的速度。

          書中提到這一種流行的定義B-樹的方法。還有一種定義的方法是允許把數據存放在內部節點中。而沒有提到B+樹。而我在google上找出的B+樹的定義和以上對B-樹的定義很像:“A B-Tree in which keys are stored in the leaves. ”。這讓我很困惑。究竟那個是B+樹哪個是B-樹。

          posted on 2006-02-12 16:29 Titan 閱讀(3049) 評論(3)  編輯  收藏

          評論

          # re: B-樹 2006-07-05 10:05 高昂的心
          沒有算法實現  回復  更多評論
            

          # re: B-樹 2006-09-10 10:15 aaaaaaaaaaa
          看看這個,有源代碼和演示程序的
          http://www.rosipay.com/1/41219.html  回復  更多評論
            

          # re: B-樹 2008-05-15 19:37 lemonroot
          你這個上面描述的是B+-樹。B-樹的數據并不都是存儲在葉結點中的。  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 鲁甸县| 绥阳县| 饶平县| 益阳市| 汨罗市| 湟中县| 青浦区| 宁蒗| 维西| 普兰店市| 五莲县| 交城县| 象州县| 汉中市| 石林| 凯里市| 云林县| 南郑县| 通许县| 公主岭市| 闽侯县| 正蓝旗| 滨海县| 滦平县| 武隆县| 武胜县| 田阳县| 东源县| 龙井市| 宁陕县| 龙门县| 邮箱| 蓬溪县| 临漳县| 扶沟县| 延长县| 台东市| 南投县| 长子县| 耿马| 青冈县|