【9】基本概念、顺序、折半、分块查找法、B/B+树

本文介绍了查找的基本概念,包括平均查找长度和各种查找方法如顺序查找、折半查找及分块查找的细节。同时,深入探讨了B树和B+树的数据结构特性,它们在数据存储和检索中的高效性能,并讨论了B+树在索引和顺序查找中的优势。
摘要由CSDN通过智能技术生成
  1. 查找的基本概念
    (1) 平均查找长度 ASL = 每个元素 查找概率 * 找到第i个元素需要进行的比较次数 的和。
    (2) 决策树(判定树)
  2. 顺序查找法
    (1) 一般线性表的顺序查找
    a. 若每个元素查找概率相同,则 ASL(成功) = (1 + 2 + … + n) / n = (n + 1) / 2
    b. ASL(失败) = n或n+1,取决于代码写法。
    (2) 有序表的顺序查找
    a. 若每个元素查找概率相同,则 ASL(成功) = (1 + 2 + … + n) / n = (n + 1) / 2
    b. ASL(失败) = (1 + 2 + … + n + n) / (n + 1) = n / 2 + n / (n + 1)
  3. 折半查找法
    (1) ASL = log(n + 1) - 1
  4. 分块查找法
    设共n个元素,每块s个元素,共b = n / s块。块内无序,块间有序。
    (1) 顺序查找确定块:ASL(成功) = (s^2 + 2s + n) / (2s),s = sqrt(n)时取最小值
    (2) 二分查找确定块:log(n/s + 1) + (s - 1)/2
  5. B树及其基本操作、B+树及其基本概念
    (1) B树
    [1] m阶B树,每个节点最多有m个孩子。
    [2] 每个节点最多有m-1个关键字(可以存有的键值对)。
    [3] 根节点最少可以只有1个关键字。
    [4] 非根节点至少有m/2个关键字。
    [5] 每个节点中的关键字都按照从小到大的顺序排列,每个关键字的左子树中的所有关键字都小于它,而右子树中的所有关键字都大于它。
    [6] 所有叶子节点都位于同一层,或者说根节点到每个叶子节点的长度都相同。
    [7] 每个节点都存有索引和数据,也就是对应的key和value。
    [8] 所以,根节点的关键字数量范围:1 <= k <= m-1,非根节点的关键字数量范围:m/2 <= k <= m-1。
    (2) B+树
    [1] B+跟B树不同B+树的非叶子节点不保存关键字记录的指针,只进行数据索引,这样使得B+树每个非叶子节点所能保存的关键字大大增加;
    [2] B+树叶子节点保存了父节点的所有关键字记录的指针,所有数据地址必须要到叶子节点才能获取到。所以每次数据查询的次数都一样;
    [3] B+树叶子节点的关键字从小到大有序排列,左边结尾数据都会保存右边节点开始数据的指针。
    (3) 参考链接
    B+树的索引节点不存任何信息,因此插入节点时,索引节点和叶节点在是否重新存节点不一样
    B+支持顺序查找
    叶节点
    在这里插入图片描述
    索引节点
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值