408 知识网络

范围查询 → B+ 树 数据在叶,叶成链

数据结构

所属模块:DS-5 查找 · 本模块第 7 / 14 个概念

在「DS-5 查找」概念体系中的位置

flowchart TD
    A["查找:ASL 度量"] --> B["无序 → 顺序 O(n)"]
    B --> C["有序 + 顺序存储 → 折半 O(log n)<br/>判定树"]
    C --> D["插删贵 → BST<br/>中序有序,高 = O(log n)~O(n)"]
    D --> E["退化 → 平衡化<br/>AVL(|BF|≤1)/ 红黑树"]
    D --> F["磁盘 I/O 瓶颈 → B 树<br/>多路矮胖,结点 = 页"]
    F --> G["范围查询 → B+ 树<br/>数据在叶,叶成链"]
    A --> H["算地址 → 散列<br/>冲突:拉链 / 开放定址<br/>装填因子 α"]

核心概念:

概念 要点 易考点
折半判定树 折半查找的比较过程构成一棵 BST;nn 个结点时查找成功/失败的最多比较次数 = 树高 log2(n+1)\lceil \log_2(n+1) \rceil 2010-9(n=16,失败最多 5 次);2023-8(600 元素最多 10 次);判定树形状(2017-8);比较序列合法性(2015-7:相邻比较值必须一半方向单调)
BST 左 < 根 < 右(各子树递归成立);中序遍历得升序 查找路径序列合法性(2011-7:路径上大小摆动要受已确定上下界约束);生成序列(2020-5);子树关键字范围(2024-7)
AVL 任意结点左右子树高差 ≤1;插入失衡后四种旋转:LL、RR、LR、RL hh 的最少结点数 Nh=Nh1+Nh2+1N_h = N_{h-1}+N_{h-2}+1(类斐波那契,2012-4:高 6 全 BF=1 → 33);插入后形态(2010-4、2021-6、2013-3)
B 树(mm 阶) 多路平衡查找树:根至少 2 子、非根至少 m/2\lceil m/2 \rceil 子;结点关键字 = 孩子数 −1;所有叶在同一层 最少/最多关键字计算(2013-10:5 阶高 2 最少 8;2018-8:3 阶高 5 至少 242);插入分裂(2020-10)、删除合并(2022-8)
B+ 树 与 B 树的三点不同:非叶只作索引(不存数据)、数据全在叶、叶结点按序链接 2016-10(特点识别);2017-9(应用:数据库/文件系统索引);2023-7(B 树查找不一定查到叶——非叶也存数据,B+ 树才一定到叶)
散列 H(key)H(key) 直接算地址;冲突解决方法:拉链法、开放定址(线性探测/平方探测) ASL 影响因素 = 装填因子 + 散列函数 + 冲突策略,三者全部(2022-9);线性探测有堆积(2014-8:直接影响 ASL)