“B 树也用高分支度降低树高,但节点内通常仍做比较或块内搜索;Fusion tree 的额外收益来自把多个整数比较压进一个字操作。若键跨越许多机器字、比较器要执行昂贵语义,或 $w$ 小到不能…”
“Fusion tree 沿用B 树式的分隔区间与平衡多路骨架,分支度取”
模型Model
施工中 · 内容逐步修订
B-tree
以高扇出、有界节点占用率和等深叶层降低外存查找 I/O 的平衡搜索树。
本页采用 minimum degree
查找在当前节点内定位分隔区间,再只沿一个子女下降。插入时,在进入满节点前把其中间键提升到父节点,并将余下键分成两个至少含
若一个节点恰好装入一个外存块,树高为
B 树与二叉平衡搜索树都控制根叶路径,B 树则以多路节点和块传输为对象,让一次读取带回许多键与子指针,用高扇出把二叉结构的多层判断压进一个外存块。半满约束保证节点不会因更新逐渐退化成稀疏长链,叶同深则让任意查找承担相近的块传输次数。
分裂、借位和合并在局部恢复节点占用不变量。插入只可能向上增加一个分隔键,删除只沿访问路径补足即将下降的子女,因此更新无需重写整棵树。
删除若直接从只含
文献中的“order”有时指最大子女数,有时指最小子女数或最大键数;不固定约定便会让节点上下界相差一。重复键、卫星记录放在内部还是外部、节点内采用线性还是二分查找,均属于实现层契约。
B 树用于文件系统、数据库索引和需要外存动态有序集合的场景。块大小越大,可容纳的分隔键越多,树高通常越低;但实际扇出还受键、指针和记录大小影响。I/O 复杂度应以真实节点是否能在一块内传输为前提。
B+ 树把记录全部放到叶层并链接叶节点,适合范围扫描;内部节点负责路由,记录查询与顺序扫描在叶层完成。
正在载入交互图谱…