首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
已知一个线性表{24, 19, 33, 56, 72, 68
[填空题]
已知一个线性表{24, 19, 33, 56, 72, 68},假定采用hash函数h(key)=key%7计算hash地址,并存储在hash表A[0…6]中,若采用线性探测方法解决冲突(即若发生冲突,则从冲突位置顺序探测hash表中的其他存储单元,直到找到空位置为止),则在该hash表上查找元素68,需要查找多少
1
步
查看正确选项
添加笔记
求解答(1)
邀请回答
收藏(33)
分享
纠错
1个回答
添加回答
9
城枫墨凉
散列表的填表过程如下:
1.首先存入第一个元素24,由于h(24)=24%7=3,又因为3号单元现在没有数据,所以把24存入3号单元。
2.接着存入第二个元素19,由于h(19)=19%7=5,又因为5号单元现在没有数据,所以把19存入5号单元。
3.接着存入第三个元素33,由于h(33)=33%7=5,此时的5号单元已经被19占据,所以进行线性再散列,线性再散列的公式为:Hi=(H(key)+di)% m ,其中的di=1,2,3,4...。所以H1=(5+1)%7=6,此时的单元6没有存数据,所以把33存入到6号单元。
4. 接着存入第四个元素56,由于h(56)=56%7=0,此时的0号单元没有数据,所以把56存入0号单元。
5.接着存入第五个元素72,由于h(72)=72%7=2。
此时的单元2没有存数据,所以把72存入到2号单元。
6. 最后存入第六个元素68,由于h(68)=68%7=5,此时的5号单元已被占据,所以进行线性再散列:H1=(5+1)%7=6,但6号单元也被占据了,所以再次散列:H2=(5+2)%7=0,但0号单元也被占据了,所以进行线性再散列:H1=(5+3)%7=1,
此时的单元1没有存数据,所以把68存入到1号单元。
如果一个元素存入时,进行了N次散列,相应的查找次数也是N,所以24,19,56,72这四个元素的查找长度为1,33的查找长度为2,68的查找长度为4,答案为4。
如果要计算散列表上的平均查找长度,我们首先必须要知道在建立这个散列表时,每个数据存储时进行了几次散列。这样就知道哪一个元素,查找的长度是多少。
所以平均查找长度为:(1+1+1+1+2+4)/6=1.666
发表于 2018-01-10 13:41:29
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
算法工程师
唯品会
2018
来自:
唯品会2018校招数据...
上传者:
小小
难度:
1条回答
33收藏
1733浏览
热门推荐
相关试题
通过构建有序序列,对于未排序数据,...
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
测试工程师
安全工程师
2018
奇安信
评论
(0)
下面描述中,符合结构化程序设计风格...
北京搜狐新媒体信息技术有限公司
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
2018
评论
(1)
若用冒泡排序对关键字序列{10,8...
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
测试工程师
安全工程师
2018
奇安信
评论
(1)
【运维方向优先】a. 请描述TCP...
唯品会
算法工程师
2018
评论
(1)
来自
唯品会2018校招数据结...
8瓶水中1瓶有毒,用动物测试。毒发...
唯品会
算法工程师
2018
评论
(20)
来自
唯品会2018校招数据结...
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题