1B-树的定义前面介绍的查找法,仅适用于计算机内存中的.ppt

1B-树的定义前面介绍的查找法,仅适用于计算机内存中的.ppt

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例4 已知长度为12的表:(Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec) (1)试按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出插入完成后的二叉排序树并求等概率的情况下查找成功的平均查找长度。 (2)若对表中元素先进行排序构成有序表,求在等概率的情况下对此有序表进行折半查找时查找成功的平均查找长度。 例2:已知一组关键字为(19,14,23,01,68,20,84,27,55,11,10,79),则按哈希函数H(key)=key mod 13和链地址法处理冲突构造所得的哈希表如图所示。 三、处理冲突的方法 4.建立一个公共溢出区 设立一个基本表和一个溢出表。基本表存放由哈希函数的值域确定的向量表HashTable[0…m-1],另一个溢出表用向量OverTable[0..v]。所有关键字和基本表中关键字为同义词的记录,不管它们由哈希函数得到的哈希地址是什么,一旦发生冲突,都填入溢出表。 三、处理冲突的方法 在哈希表上进行查找的过程和哈希造表的过程基本一致。 1.查找过程 (1)给定K值,根据造表时设定的哈希函数求得哈希地址,若表中此位置上没有记录,则查找不成功; (2)此位置上有记录,比较关键字: 若和给定值相等,则查找成功; 若不相等,则出现了冲突,找“下一地址”, 四、哈希表的查找及其分析 表中记录的关键字等于给定值 找到 哈希表中某个位置为“空” 未找到 四、哈希表的查找及其分析 2.查找分析 (1)由于“冲突”的产生,使得哈希表的查找过程仍然是一个给定值和关键字进行比较的过程。仍需以平均查找长度作为衡量哈希表的查找效率量度。 (2)查找过程中需和给定值进行比较的关键字的个数取决于下列三个因素: a.哈希函数 哈希函数的“好坏”首先影响出现冲突的频繁程度。通常设定哈希函数是均匀的,产生冲突的可能性相同,则不考虑它对平均查找长度的影响。 b.处理冲突的方法 对同样一组关键字,设定相同的哈希函数,则不同的处理冲突方法得到的哈希表不同,它们的平均查找长度也不同。对上面两例子的哈希表,设定记录的查找概率相等。 链地址法的平均查找长度为: ASL(12)=1/12(1*6+2*4+3+4)=1.75 线性探测再散列的平均查找长度为: ASL(12)=1/12(1*6+2+3*3+4+9)=2.5 四、哈希表的查找及其分析 c.哈希表的装填因子 在处理冲突方法相同的哈希表,其平均查找长度依赖于哈希表的装填因子。设装填因子为α,则装填因子定义为 α= 表中填入的记录数 哈希表的长度 标志哈希表的装满程度。 α 越小,发生冲突的可能性就越小;反之,α越大,表中已填入的记录越多,再填记录时,发生冲突的可能性就越大,则查找时,给定值与之进行比较的关键字的个数也就越多。 四、哈希表的查找及其分析 结论: 查找成功时的ASL: Snl≈1/2(1+1/(1-α)) (线性探测再散列) Snr≈-1/αln(1-α) (随机、二次探测和再哈希) Snc≈1+α/2(链地址法) 平均查找长度仅和装填因子有关,选择合适的装填因子使平均查找长度限定在一定的范围内是很关键的。 查找不成功的ASL: unl≈1/2(1+1/(1-α)2) (线性探测再散列) unr≈1/ (1-α) (随机、二次探测和再哈希) unc≈α+ e -α(链地址法) 四、哈希表的查找及其分析 本章小结 例3:对以下关键字序列建立哈希表:(SUN,MON,TUE,WED,THU,FRI,SAT),哈希函数为H(K)=(关键字中第一个字母在字母表中的序号)MOD 7 ,用线性探测法处理冲突,构造一个装填因子为0.7的哈希表;并分别计算出在等概率情况下查找成功与不成功的平均查找长度。 解:由?=0.7,表长m=7/0.7=10 S:19 M:13 T:20 W:23 F:6 比较次数 ? ? ? 关键字 9 8 7 6 5 4 3 2 1 0 哈希地址 ASL succ= (1+1+1+2+3+4+6) /7=18/7 ASL unsucc= ( 2+1+2+1+1+7+6+5+4+3)/10=32/10 失败探测次数 2 1 2 1 1 7 6 5 4 3 找失败点: ?,即探测终止点, SUN MON TUE THU WED FRI SAT 6 1 1

您可能关注的文档

文档评论(0)

天马行空 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档