B-树的高度及性能分析

     B-树上操作的时间通常由存取磁盘的时间和CPU计算时间这两部分构成。B-树上大部分基本操作所需访问盘的次数均取决于树高h。关键字总数相同的情况下B-树的高度越小,磁盘I/O所花的时间越少。

     与高速的CPU计算相比,磁盘I/O要慢得多,所以有时忽略CPU的计算时间,只分析算法所需的磁盘访问次数(磁盘访问次数乘以一次读写盘的平均时间(每次读写的时间略有差别)就是磁盘I/O的总时间)。

1、B-树的高度

   
 定理9.1 若n≥1,m≥3,则对任意一棵具有n个关键字的m阶B-树,其树高h至多为:

        log
t((n+1)/2)+1。

这里t是每个(除根外)内部结点的最小度数,即

       
《B-树的高度及性能分析》

     由上述定理可知:B-树的高度为O(logtn)。于是在B-树上查找、插入和删除的读写盘的次数为O(log
tn),CPU计算时间为O(mlog
tn)。

2、性能分析

  ①n个结点的平衡的二叉排序的高度H(即lgn)比B-树的高度h约大lgt倍。

     【例】若m=1024,则lgt=lg512=9。此时若B-树高度为4,则平衡的二叉排序树的高度约为36。显然,若m越大,则B-树高度越小。

  ②若要作为内存中的查找表,B-树却不一定比平衡的二叉排序树好,尤其当m较大时更是如此。

     因为查找等操作的CPU计算时间在B-树上是

        O(mlog
tn)=0(lgn·(m/lgt))

而m/lgt>1,所以m较大时O(mlogtn)比平衡的二叉排序树上相应操作的时间O(lgn)大得多。因此,仅在内存中使用的B-树必须取较小的m。(通常取最小值m=3,此时B-树中每个内部结点可以有2或3个孩子,这种3阶的B-树称为2-3树)。 

    原文作者:B树
    原文地址: https://blog.csdn.net/lane3010/article/details/1721741
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞