首页
题库
面试
求职
学习
竞赛
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个回答
添加回答
10
城枫墨凉
散列表的填表过程如下:
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收藏
1818浏览
热门推荐
相关试题
通过构建有序序列,对于未排序数据,...
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
测试工程师
安全工程师
2018
奇安信
评论
(0)
若用冒泡排序对关键字序列{10,8...
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
测试工程师
安全工程师
2018
奇安信
评论
(1)
下面描述中,符合结构化程序设计风格...
北京搜狐互联网信息服务有限公司
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
2018
评论
(1)
在 CPU 与主存之间设置高速缓冲...
唯品会
算法工程师
2018
评论
(2)
来自
唯品会2018校招数据结...
对于我们来说,谁是好的顾客?
销售常识
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题