- 1、本文档共215页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 直观的概念 非平衡的二叉查找树的最坏情况:树会有线性的深度,因此,将需要10,000,000次磁盘访问。需要463小时 平均情况:一次成功的查找需要1.38logN次磁盘访问,因为log10,000,000接近于24,那么平均查找将需要32次磁盘访问,也就是5秒钟。 典型情况:在随机构造的树中,某些结点的深度将会是平均深度的三倍,于是就需要100次磁盘访问,即16秒。 假设有10,000,000条记录,再假设这些数据内存里是放不下的,我们一秒钟可以执行两千五百万条指令,或进行6次磁盘访问。 * 解决方法 把磁盘访问次数降低到一个很小的常数,比如说3或者4。 方法:增加树的分叉,就能降低树的高度,即采用M叉查找树 M叉查找树的最佳高度为:logMN * B+树 B+树是满足某些平衡条件的M叉树。 M阶的B+树是具有以下性质的B叉树: 数据项被存贮在叶子中。 非叶子结点至多保存M-1个键来引导查找,键i表示了子树i+1中键的最小值。 根或者是叶子,或者是有2到M个儿子。 除根之外所有的非叶结点的儿子数为 到M之间。这保证了B树不会退化成二叉树。 所有的叶子都在同一层上,并且对于某个L要有 到L个数据项 * 一棵5阶的B+树 每个节点是一个磁盘块 L = 5 查找过程: 35 50 64 8 15 23 30 41 46 55 60 70 79 8 9 11 1 3 5 15 16 18 19 21 23 25 26 27 30 31 32 33 34 35 38 40 41 42 43 44 45 46 47 48 50 51 52 53 55 57 59 60 61 62 64 66 68 70 73 77 79 81 82 * L和M的选择 M的选择:如果每个键要占用32字节。因此在一棵M阶B树中,可以有M-1个键,总的数据量就是32M-32个字节加上M个分支。而且因为每个分支其实是另一个磁盘块的块号,假设分支的大小是4个字节。那么分支就要占去4M个字节。则一个非叶子结点总的内存需要量是36M-32字节。要36M-32不超过8,192的M的最大值是228,于是选择 M=228。 假如每条数据记录要256字节,则一块中可以存储32条记录,所以L就取为32。每个叶子有16到32条数据记录。 外存读写单位为块,一个块存放一个结点能使IO效率最高。假设一个块的容量8,192字节 * B+树的插入 叶结点不满:把新节点插入叶子,重新调整该叶子中数据的顺序 叶子已经装满 :通过分裂该叶子,形成两个半满的叶子来插入一个新的项 。 更新父节点 如果父亲的儿子数量已经满了,我们就继续分裂父亲。最坏情况要分裂根。这就是为什么根节点允许只有两个孩子。 从树根开始查找应该插入的叶结点 * 插入7 35 50 64 8 15 23 30 40 46 55 60 70 79 8 9 11 1 3 5 7 15 16 18 19 21 23 25 26 27 30 31 32 33 34 35 37 38 40 42 43 44 45 46 47 48 50 51 52 53 55 57 59 60 61 62 64 66 68 70 73 77 79 81 82 * 插入41 35 50 64 8 15 23 30 40 43 46 55 60 70 79 8 9 11 1 3 5 7 15 16 18 19 21 23 25 26 27 30 31 32 33 34 35 37 38 40 41 42 46 47 48 50 51 52 53 55 57 59 60 61 62 64 66 68 70 73 77 79 81 82 43 44 45 * 插入22 19 35 50 64 8 15 40 43 46 55 60 70 79 8 9 11 1 3 5 7 15 16 18 23 25 26 27 30 31 32 33 34 35 37 38 40 41 42 46 47 48 50 51 52 53 55 57 59 60 61 62 64 66 68 70 73 77 79 81 82 43 44 45 23 30 19 21 22 * B+树的删除 删除操作首先查找到要删除的项,然后删除它 如果此时它所在的叶子的元素数量正好满足要求的最小值,删除该项就会使它低于最小值 如果邻居不是最少的情况,就借一个过来领养; 如果邻居也处于最少的情况,就把两个结点合并成一个满的结点。很不幸的是,在这种情况下父亲就失去了一个儿子。如果它引起父亲的儿子数少于了最小值,我们就要使用同样的策略了。这个过程一直向上进行过滤到根。如果在寄养的过程中,根只剩下了一个儿子,就把根删除,让它的儿子作为
您可能关注的文档
- 软件工程-胡飞(第二稿电子教案)chapter 09.ppt
- 软件工程-胡飞(第二稿电子教案)chapter 10.ppt
- 软件工程-胡飞(第二稿电子教案)chapter 06.ppt
- 软件工程-胡飞(第二稿电子教案)chapter 11.ppt
- 软件工程-胡飞(第二稿电子教案)chapter 12.ppt
- 软件工程-刘强-01-SEIntro.pdf
- 软件工程-胡飞(第二稿电子教案)chapter 13.ppt
- 软件工程-刘强-02-Process.pdf
- 软件工程-刘强-05-OOIntro.pdf
- 软件工程-刘强-04-Requirement.pdf
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)