zoukankan      html  css  js  c++  java
  • B树、B+树

    B树(也叫做B-树或B_树(一直以为B-是B树的变形))

    一颗M阶B树,是一颗平衡的M路搜索树

    1.若不是叶子结点至少有个子结点,最多有M个子结点

    2.每个非根非叶子结点子结点数量为[ceil(M/2),M] ,因此关键字的数量为[ceil(M/2)-1,M-1]

    3.每个结点的关键字数为子结点数-1,结点的子结点和关键字的值是升序,且关键字恰好是每个孩子包含的关键字的值域的划分(其实就是把关键字依次插入,整体还是递增的)

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

    5.关键字分布在整个树中,一个关键字只出现在一个节点中,因此搜索可能在非叶子结点结束

    6.其搜索性能等价于在全集中做一次二分查找

    B树为系统优化大块数据的读写操作,普遍运用于数据库和文件系统

    B+树

    与B树不同之处

    1.非叶子结点的子结点数和关键字数相同(对于子树指针P[i],指向关键字是[K[i],K[i+1])的子树)

    2.所有关键字都在子节点出现

    3.每一个叶子结点都加一个链指针(因此对于遍历整棵树,只需要在最左边节点,通过该指针依次遍历即可)

    因此 B+树的非叶子结点相当于叶子结点的索引,而叶子结点相当于数据层,B+树也更适合与索引系统

  • 相关阅读:
    mysql数据引擎
    R语言入门
    springboot整合springmvc、mybatis
    svn搭建和配置
    UML常用图的几种关系的总结
    cookies和session机制
    Java总结篇系列:Java多线程(三)
    Java总结篇系列:Java多线程(一)
    Java总结篇系列:Java多线程(二)
    restframework之认证
  • 原文地址:https://www.cnblogs.com/lmhyhblog/p/10044202.html
Copyright © 2011-2022 走看看