• B树


    参考:https://mp.weixin.qq.com/s/rDCEFzoKHIjyHfI_bsz5Rw

       https://mp.weixin.qq.com/s/jRZMMONW3QP43dsDKIV9VQ

    问题:怎么从一堆数据中查找某一个数据?

      一般我们就会将数据放入红黑树或者堆之中,这些都是基于二叉搜索树,查找、删除、修改的时间复杂度都为O(logn)。这样做的前提是数据都能放入内存中,数据量比较小。当数据库中存储的数据量特别大时,我们不仅要考虑到与树中结点作比较所消耗的时间,还要考虑因内存不足从磁盘IO的时间,而且对于磁盘IO时间来说,内存比较的时间几乎可以忽略不计。

      如果采用二叉搜索树的形式作为索引,最坏情况下,磁盘IO次数等于树的高度。二叉搜索树形状为“瘦高”。为了减少磁盘IO次数,就要将“瘦高”的索引树变得“矮胖”。因而使用多路平衡查找树。

    B树(B-树)适用于外查找的树,它是一种平衡的多叉树。

      一棵m阶B树(balanced tree of order m)是一棵平衡的m路搜索树。它或者是空树,或者是满足下列性质的树:
      1.根结点至少有两个子女。

       2.每个中间节点都包含k-1个元素和k个孩子,其中 m/2 <= k <= m

       3.每一个叶子节点都包含k-1个元素,其中 m/2 <= k <= m

       4.所有的叶子结点都位于同一层。

       5.每个节点中的元素从小到大排列,节点当中k-1个元素正好是k个孩子包含的元素的值域划分。

    B树查找过程例如查找元素5

            

         

        

  • 相关阅读:
    动态创建DeepZoom
    MultiSheet Excel Output
    PL/SQL Developer设置技巧
    采购审批专题总结bob
    oracle dbms包和其他包的使用大全
    ARAuto Invoice question
    应收发票相关 脚本
    发运确认停靠站错误
    让R12直接从Form登录
    查找事物处理来源
  • 原文地址:https://www.cnblogs.com/youayou/p/11357758.html
Copyright © 2020-2023  润新知