数据结构第九章检索电子教案.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
北京大学信息学院 ?版权所有,转载或翻印必究 Page 95 二次探查 探查序列依次为:12,-12,22 ,-22,...,即探查函数是 d2i-1 = (d +i2) % M d2i = (d – i2) % M 用于简单线性探查的探查函数是 p(K,2i-1) = i*i p(K,2i) = - i*i 北京大学信息学院 ?版权所有,转载或翻印必究 Page 96 例:使用一个大小M = 13的表 假定对于关键码k1和k2,h(k1)=3,h(k2)=2 探查序列 k1的探查序列是3、4、2、7 、... k2的探查序列是2、3、1、6 、... 尽管k2会把k1的基位置作为第2个选择来探查,但是这两个关键码的探查序列此后就立即分开了 北京大学信息学院 ?版权所有,转载或翻印必究 Page 97 伪随机数序列探查 探查函数 p(K,i) = perm[i - 1] 这里perm是一个长度为M - 1的数组 包含值从1到M - 1的随机序列 北京大学信息学院 ?版权所有,转载或翻印必究 Page 63 [例9.6] 如果一本书的编号为0-442-20586-4 5 8 6 4 5 8 6 4 4 2 2 0 0 2 2 4 + 0 4 + 0 4 [1] 0 0 8 8 6 0 9 2 h(key)=0088 h(key)=6092 (a)移位叠加 (b)分界叠加 北京大学信息学院 ?版权所有,转载或翻印必究 Page 64 ELFhash字符串散列函数 用于UNIX系统V4.0“可执行链接格式”( Executable and Linking Format,即ELF ) int ELFhash(char* key) { unsigned long h = 0; while(*key) { h = (h 4) + *key++; unsigned long g = h 0xF0000000L; if (g) h ^= g 24; h = ~g; } return h % M; } 北京大学信息学院 ?版权所有,转载或翻印必究 Page 65 长字符串和短字符串都很有效 字符串中每个字符都有同样的作用 对于散列表中的位置不可能产生不平均的分布 北京大学信息学院 ?版权所有,转载或翻印必究 Page 66 散列函数的应用 在实际应用中应根据关键码的特点,选用适当的散列函数 有人曾用“轮盘赌”的统计分析方法对它们进行了模拟分析,结论是平方取中法最接近于“随机化” 若关键码不是整数而是字符串时,可以把每个字符串转换成整数,再应用平方取中法 北京大学信息学院 ?版权所有,转载或翻印必究 Page 67 碰撞的处理 开散列方法( open hashing,也称为拉链法,separate chaining ) 把发生冲突的关键码存储在散列表主表之外 闭散列方法( closed hashing,也称为开地址方法,open addressing ) 把发生冲突的关键码存储在表中另一个槽内 北京大学信息学院 ?版权

文档评论(0)

youngyu0329 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档