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

来源:互联网 发布:原创歌曲网站软件 编辑:程序博客网 时间:2024/05/16 19:49

【笔记】


搜索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的最优值。




0 0