• B树


    B树的定义
    flyfish 2015-7-15

    B-树即为B树。由于B树的原英文名称为B-tree,由于翻译的不统一所以B树和B-树都是B-tree。

    B树定义 引用自严蔚敏《数据结构》(C语言版)
    B树是一种平衡的多路查找树
    定义:一棵m 阶的B树,或者为空树。或为满足下列特性的m 叉树:
    1 树中每一个结点至多有m 棵子树;
    2 若根结点不是叶子结点。则至少有两棵子树;
    3 除根结点之外的全部非终端结点至少有m/2棵子树。
    4 全部的非终端结点中包括下面信息数据:
    (n。A0K1A1K2A2,…。KnAn
    当中:Ki(i=1,…,n)为keyword,且Ki<Ki+1
    Ai (i=0。…,n)为指向子树根结点的指针。且指针Ai1 所指子树中全部结点的keyword均小于Ki (i=1,…,n),
    An 所指子树中全部结点的keyword均大于Kn.
    n( m/21nm1)为keyword的个数(或者n+1为子树的个数)。
    5 全部的叶子结点都出如今同一层次上。而且不带信息(能够看作是外部结点或查找失败的结点,实际上这些结点不存在,指向这些结点的指针为空)。

    结点最大的孩子数目称为B树的阶(order)

    B树定义 引用自 Donald Knuth的《The Art of Computer programming》

    A B-tree of order m is a tree that satisfies the following properties:
    1 Every node has at most m children.
    2 Every node, except for the root and the leaves, has at least m/2 children,
    3 The root has at least 2 children (unless it is a leaf),
    4 All leaves appear on the same level, and carry no information.
    5 A nonleaf node with k children contains k - 1 keys.
    翻译
    1 树中每一个结点至多有m个孩子。
    2 除根结点和叶子结点外。其他每一个结点至少有m/2个孩子;
    3 若根结点不是叶子结点,则至少有2个孩子;
    4 全部叶子结点都出如今同一层,叶子结点不包括不论什么keyword信息;
    5 有k个孩子的非终端结点包括k-1个keyword。

    向下取整floor,用数学符号表示
    向上取整ceil。用数学符号表示
    floor(7.5) = 7
    floor(-7.5) = -8
    ceil(7.5) = 8
    ceil(-7.5) = -7

    B树示意图
    绿色:keyword个数
    红色:指针
    蓝色:keyword
    keyword从1到9的B树
    这里写图片描写叙述

    问题:
    对于n个keyword的m阶B树。最坏情况须要查找几次?

    相同的问题不同的问法
    含n个keyword的m阶B树的最大深度是多少?

    深度为h+1的m阶B树所具有的最少结点数是
    第一层至少1个节点
    第二层至少2个节点

    除根节点外每一个分支节点至少有m/2棵子树
    所以层数与每层至少结点数的关系例如以下
    1 = 1
    2 = 2
    3 = 2× m/2
    4 = 2×( m/2)2
    5 = 2×( m/2)3
    6 = 2×( m/2)4
    7 = 2×( m/2)5

    h = 2×( m/2)h2
    h+1 = 2×( m/2)h1

    h+1层的节点就是叶子节点。若m阶B树有n个keyword。则叶子节点即查找不成功的节点为n+1

    推导
    n+1 2×(m/2)h1

    2×( m/2)h1 n+1

    ( m/2)h1n+12

    h-1logm/2(n+12)

    hlogm/2(n+12)+1

    所以 含n个keyword的m阶B树的最大深度是
    logm/2(n+12)+1

    读作 以m/2为底 (n+12)的对数 加1

    Degree为3,关键码从1到9的B树示意图
    绿色:keyword个数
    红色:指针
    蓝色:keyword

    这里写图片描写叙述

  • 相关阅读:
    【题解】Acwing 90 64位整数乘法
    【题解】Acwing 89 a ^ b
    【题解】POJ 1995 Raising Modulo Numbers
    python图像处理(2)图像水印和PIL模式转化
    python图像处理(1)图像的打开与保存
    请把我风干成你的回忆
    python图像处理 模式转化简单总结
    python 不以科学计数法输出
    talib指标公式及释义整理
    cuda、cudnn下载安装教程
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/7191419.html
Copyright © 2020-2023  润新知