- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
chap09--索引和散列
数 据 结 构(C语言版);第9章;本章目标;9.1 磁盘和文件;9.1.1 主存和辅存;9.1.2 磁盘驱动器1-1;9.1.2 磁盘驱动器1-2;9.1.2 磁盘驱动器1-3;9.1.2 磁盘驱动器1-4;9.1.2 磁盘驱动器1-5;9.1.2 磁盘驱动器1-6;9.1.3 磁盘访问的时间代价2-1;9.1.3 磁盘访问的时间代价2-2;9.2 静态索引及其查找;索引结构;9.2.1 线性索引3-1;9.2.1 线性索引3-2;为什么要用索引?;稠密索引(索引无序结构);稠密索引的性能分析;稀疏索引(索引有序结构)4-1;稀疏索引(索引有序结构)4-2;稀疏索引的性能分析5-1;下面我们仅讨论在内存中查找所消耗的时间代价
从前面的性能分析可知:内存中的查找包括(2)和(4)两步,即在索引表中顺序查找或折半查找和在页块中顺序查找。因此,总的ASL=Lb+Lw,其Lb为索引表的平均搜索长度, Lw为在页块中查找指定纪录的平均搜索长度;9.2.2 多级树型索引6-1;9.2.2 多级树型索引6-2;9.2.2 多级树型索引6-3;9.3 动态索引及其查找;9.3.1 B树;B树是一种高度平衡的动态m阶查找树
其定义为
树中所有结点至多有m 棵子树(至多全满,m-1个关键字)
根结点至少有2棵子树(至少有1个关键字)
其他非叶结点至少有?m/2? 棵子树(至少半满,?m/2?-1个关键字),叶结点至少有?m/2?-1个关键字
所有结点具有如下结构n , P0 , (K1, A1, P1) , (K2, A2, P2),…, (Kn, An, Pn)。其中, Ki是关键字,且必须KiKi+1(1≤i≤ n);Pi(0≤i≤n≤m)是指向子结点的指针(实际上是子结点在磁盘中的地址);Ai是指向包含关键字Ki的纪录的指针(实际上是纪录在磁盘中的地址)
在子结点Pi中所有的关键字都大于Ki而小于Ki+1。在子结点P0中的所有关键字都小于K1,而子结点Pn中所有的关键字都大于Kn
所有叶结点都在同一层上(?=0, 高度平衡);B树的定义7-2;包含N个关键字的m阶B树的高度 h≤log ? ? ( )+1;B树的性质8-2;B树的性质8-3;B树的查找9-1;B树的查找9-2;B树的查找9-3;B树查找分析;B树的插入10-1;B树的插入10-2;B树中的所有非根结点至少有?m/2?个子结点(至少半满),即至少含有?m/2?-1个关键字。若从一个结点删除某个关键字后,该结点低于半满,则要发生结点的“合并”。否则直接删除
结点“合并”的原则是
1、若从叶结点删除一个key
1.1、在删除key后,??结点中关键字数≥ ?m/2? -1 (至少半满),只需将key后面的关键字左移填补空位
1.2、在删除key后,叶结点中关键字数 ?m/2?-1,导致下溢。这时,
1.2.1、如果该叶结点有关键字数 ?m/2?-1的左兄弟或右兄弟,则将父结点中的分隔键移到这个叶结点中,然后从这个兄弟中移一个关键字到父结点中;1.2.2、如果该叶结点的左右兄弟的关键字数都 = ?m/2?-1,则将这个叶结点和它的一个兄弟合并:该叶结点的关键字、它的兄弟的关键字以及父结点的分隔键全部放到该叶结点中,然后删除它的这个兄弟结点。 由于父结点中的分隔键被移走后出现一个空位,有可能导致父结点下溢,这时可把父结点看作叶结点,重复1直到可以执行1.2.1或者到达树的根结点结束
2、若从一个非叶结点删除一个key
将要删除的关键字用它的直接后继(也可以用直接前驱)替换,这只能从一个叶结点中找到。然后将这个后继值从叶结点中删除,这就回到了第1种情况;B树的删除11-3;B树的删除11-4;B树的删除11-5;B树的分析与发展12-1;B树的分析与发展12-2;9.3.2 B+树*;树中每个非叶结点至多有m 棵子树(至多全满)
根结点至少有2棵子树
其他非叶结点至少有?m/2? 棵子树(至少半满)
所有非叶结点只是快速访问数据的索引,可以看成索引部分,具有如下结构n , P0 , (K1, P1) , (K2, P2) , …, (Kn, Pn),其中,Ki是关键字,且必须KiKi+1(1≤i≤n);Pi(0≤i≤n ≤m)是指向子结点的指针(实际上是子结点在磁盘中的地址)。结点格式同B树
在子结点Pi中所有的关键字都大于等于Ki而小于Ki+1。在子结点P0中的所有关键字都小于K1,而子结点Pn中所有的关键字都大于等于Kn;B+树的定义13-2*;B+树的定义13-3*;B+树的查找14-1*;B+树的查找14-2*;B+树的插入15-1*;B+树的插入15-2*;B+树的删除1
文档评论(0)