习题题5-1Hash函数答案说明.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
习题题5-1Hash函数答案说明

题5.1 分离链接法:将散列到同一个值的所有元素保留到一个链表中。 首先插入4371,h(4371)=4371(mod 10)=1,故插入1位置。 插入1323,h(1323)=1323(mod 10)=3,故插入3位置。 插入6173,h(6173)=6173(mod 10)=3,故插入3位置,此时发生冲突(与1323插入同一位置),故添加一个链表并保存到此链表中。 插入4199,h(4199)=4199(mod 10)=9,故插入9位置。 插入4344,h(4344)=4344(mod 10)=4,故插入4位置。 插入9679,h(9679)=9679(mod 10)=9,故插入9位置,此时发生冲突(与4199插入同一位置),故添加一个链表并保存到此链表中。 插入1989,h(1989)=1989(mod 10)=9,故插入9位置,此时发生冲突(与4199,9679插入同一位置),故添加一个链表并保存到此链表中。 线性探测:hi(x)=(hash(x)+f(i))mod TableSize,其中f(i)=i,i为发生冲突的次数,f(0)=0。相当于逐个探测散列表,最后将值散列到最接近的一个空单元中(可以理解为,若发生冲突,则插入到下一个空单元中)。 首先插入4371,h0(4371)=(4371(mod 10)+f(0))mod 10=1,故插入1位置。 插入1323,h0(1323)=(1323(mod 10)+f(0))mod 10=3,故插入3位置。 插入6173,h0(6173)=(6173(mod 10)+f(0))mod 10=3,故插入3位置,此时发生冲突(与1323插入同一位置)。 发生第一次冲突,计算h1(6173)=(6173(mod 10)+f(1))mod 10=4,故插入4位 置。 插入4199,h0(4199)=(4199(mod 10)+f(0))mod 10=9,故插入9位置。 插入4344,h0(4344)=(4344(mod 10)+f(0))mod 10=4,故插入4位置,此时发生冲突(与6173。插入同一位置)。 发生第一次冲突计算h1(4344)=(4344(mod 10)+f(1))mod 10=5,故插入5位置。 插入9679,h0(9679)=(9679(mod 10)+f(0))mod 10=9,故插入9位置,此时发生冲突(与4199插入同一位置)。 发生第一次冲突计算h1(9679)=(9679(mod 10)+f(1))mod 10=0,故插入0位置。 插入1989,h0(1989)=(1989(mod 10)+f(0))mod 10=9,故插入9位置,此时发生冲突(与4199插入同一位置)。 发生第一次冲突计算h1(1989)=(1989(mod 10)+f(1))mod 10=0,故插入0位置, 此时发生冲突(与9679插入同一位置)。 发生第二次冲突计算h2(1989)=(1989(mod 10)+f(2))mod 10=1,故插入1位置, 此时发生冲突(与4371插入同一位置)。 发生第三次冲突计算h3(1989)=(1989(mod 10)+f(3))mod 10=2,故插入2位置。 平方探测:hi(x)=(hash(x)+f(i))mod TableSize,其中f(i)=i2,i为发生冲突的次数,f(0)=0。 首先插入4371,h0(4371)=(4371(mod 10)+f(0))mod 10=1,故插入1位置。 插入1323,h0(1323)=(1323(mod 10)+f(0))mod 10=3,故插入3位置。 插入6173,h0(6173)=(6173(mod 10)+f(0))mod 10=3,故插入3位置,此时发生冲突(与1323插入同一位置)。 发生第一次冲突,计算h1(6173)=(6173(mod 10)+f(1))mod 10=4,故插入4位 置。 插入4199,h0(4199)=(4199(mod 10)+f(0))mod 10=9,故插入9位置。 插入4344,h0(4344)=(4344(mod 10)+f(0))mod 10=4,故插入4位置,此时发生冲突(与6173插入同一位置)。 发生第一次冲突计算h1(4344)=(4344(mod 10)+f(1))mod 10=5,故插入5位置。 插入9679,h0(9679)=(9679(mod 10)+f(0))mod 10=9,故插入9位置,此时发生冲突(与4199插入同一位置)。 发生第一次冲突计算h1(9679)=(9679(mod 10)+f(1))mod 10=0,故插入0位置。 插入1989,h0(1989)=(1989(mod 10)+f(0

文档评论(0)

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

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

1亿VIP精品文档

相关文档