数据结构_文件与查找课件.pptVIP

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构_文件与查找课件

第九章 文件及查找;9.1 文件概述;9.1 文件概述;;9.1 文件概述;9.1 文件概述;9.1 文件概述;9.1 文件概述;9.2 顺序文件; 顺序文件在存储介质中可以有两种不同的实现结构:连续结构和链结构。;9.2 顺序文件;9.2 顺序文件;9.2 顺序文件;9.2 顺序文件;9.2 顺序文件;9.2 顺序文件;9.2 顺序文件;9.3 索引文件;9.3 索引文件;9.3 索引文件;B树是一种平衡的多路查找树,它在数据处理中有着巨大的作用,已经成为数据处理中主要的文件组织形式。它以占用存储空间少,查找效率高的优势在数据库系统的索引技术中占据了重要的地位。 定义 :一棵m阶的B树,或者为空树,或为满足下列特性的m叉树。 (1)对树中子树的要求: 每个结点至多有m棵子树。 若根结点不是叶子结点,则至少有两棵子树。 除根结点之外的所有非终端结点至少有?m/2? 棵子树。;(2)对树中关键字个数的要求: 所有的非终端结点中??含以下信息(n,A0,K1,A1,K2,…,Kn,An)。 其中,n为关键字个数,?m/2? ?1≤n≤m?1;Ki(i=1,2,…,n)为关键字,且KiKi+1;Ai为指向子树根结点的指针(i=0,1,…,n),且指针Ai-1所指子树中所有结点的关键字值均小于Ki(i=1,2,…,n),An所指子树中所有结点的关键字值均大于Kn。 (3)对叶子结点的要求: 所有的叶子结点都出现在同一层次上,并且不带信息(可以看做是外部结点或查找失败的结点,实际上这些结点不存在,指向这些结点的指针为空)。;例 一棵5阶的B树 ;9.4 B-树与B+树;9.4 B-树与B+树;9.4 B-树与B+树;9.4 B-树与B+树;B+树是应文件系统所需而产生的一种B树的变形树。一棵m阶的B+树和m阶的B树的差异在于: (1)在B树中,每个结点含n个关键字,n+1棵子树;在B+树中,每个结点含n个关键字,n棵子树。 (2)在B树中,每个结点中关键字个数n的取值范围?m/2? ?1≤n≤m?1(除根)结点外。 在B+树中,每个结点中关键字个数n的取值范围?m/2?≤n≤m(除根结点外),1≤n≤m(根结点)。 (3)B+树中所有叶子结点包含了全部关键字及指向对应记录的指针,且所有叶子结点按关键字由小到大顺序依次链接。 (4)B+树中所有非叶子结点仅起索引作用,结点中仅含有其子树中的最大(或最小)关键字。 ;9.4 B-树与B+树;9.4 B-树与B+树;9.5 杂凑(Hash)文件;9.5 杂凑(Hash)文件;9.5 杂凑(Hash)文件;9.5 杂凑(Hash)文件;9.5 杂凑(Hash)文件;散列技术的关键问题: ⑵ 冲突的处理。如何采取合适的处理冲突方法来解决冲突。 ① Hash函数。若Hash函数选择得当,就可使Hash地址尽可能均匀地分布在Hash地址空间上,从而减少冲突的发生;否则,若Hash函数选择不当,就可能使Hash地址集中于某些区域,从而加大冲突的发生。 ② 处理冲突的方法。选择适当的Hash函数可以减少冲突,但不能避免冲突,因此当冲突发生时,必须有较好的处理冲突的方法。 ③ Hash表的装填因子。 ;9.5 杂凑(Hash)文件;9.5 杂凑(Hash)文件;根据关键码在各个位上的分布情况,选取分布比较均匀的若干位组成散列地址。 ;对关键码平方后,按散列表大小,取中间的若干位作为散列地址(平方后截取)。 ;将关键码从左到右分割成位数相等的几部分,将这几部分叠加求和,取后几位作为散列地址。 ;由关键码得到的散列地址一旦产生了冲突,就去寻找下一个空的散列地址,并将记录存入。 ;9.5 杂凑(Hash)文件; 例:有关键字序列为{36,7,40,11,16,81,22,8,14},Hash表表长为11, Hash(key)=key % 11,用线性探测法处理冲突,建立Hash表 ;例 以上例中的关键字建立Hash表。用二次探测法处理冲突,建立Hash表 ;9.5 杂凑(Hash)文件;9.5 杂凑(Hash)文件;例 关键字序列为{36,7,40,11,16,81,22,8,14},Hash函数为 Hash(key)=key % 11 用链地址法处理冲突,建立Hash表 ;9.5 杂凑(Hash)文件;由于冲突的存在,产生冲突后的查找仍然是给定值与关键码进行比较的过程。 在查找过程中,关键码的比较次数取决于产生冲突的概率。而影响冲突产生的因素有: (1)散列函数是否均匀 (2)处理冲突的方法 (3)散列表的装载因子 α=表中填入的记录数/表的长度

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档