《算法导论》笔记 第18章 18.2 对B树的基本操作

【笔记】

搜索B树

创建一棵为空的B树

向B树中插入关键字

将一个满的结点y按其中间关键字key_t[y]分裂成两个各含t-1个关键字的结点。中间关键字被提升到y的双亲结点。

当沿着树往下查找新关键字所属位置时,就分裂沿途遇到的每个满结点。

B树中结点的分裂

开始时,结点y有2t个子女,在分裂后减少至t个子女。

对B树用单程下行遍历树方式插入关键字

【练习】

18.2-1 给出将关键字F,S,Q,K,C,L,H,T,V,W,M,R,N,P,A,B,X,Y,D,Z,E依序插入一棵最小度数为2的空的B树的结构。

18.2-2 解释在什么情况下,在调用B-TREE-INSERT的过程中,会执行冗余的DISK-READ或DISK-WRITE操作。

18.2-3 请解释如何在一棵B树中,寻找最小关键字和树中某一给定关键字的前驱。

*18.2-4 假设关键字{1,2,…,n}被插入一个最小度数为2空B树中。最终的B树有多少个结点?

18.2-5 因为叶结点无需指向子女的指针,对同样大小的磁盘页,可选用一个与内结点不同的t值。

18.2-6 假设B-TREE-SEARCH的实现是在每个结点处采用二叉查找,而不是线性查找。证明无论怎样选择t,这种实现所需的CPU时间都为O(lgn)。

18.2-7 假设磁盘硬件允许我们任意选择磁盘页的大小,但读取磁盘页的时间为a+bt,其中a和b为规定的常数,t为确定磁盘页的大小后,B树的最小度数。描述如何选择t以最小化B树的查找时间。对a=5毫秒和b=10毫秒,请给出一个t的最优值。

    原文作者:B树
    原文地址: https://blog.csdn.net/cyendra/article/details/24725485
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞