首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
设散列表的长度为10,散列函数H(n)=n mod 7,初始
[单选题]
设散列表的长度为10,散列函数H(n)=n mod 7,初始关键字序列为 (33,24,8,17,21,10),用链地址法作为解决冲突的方法,平均查找长度是?
1
1.5
2
2.5
查看答案及解析
添加笔记
求解答(9)
邀请回答
收藏(693)
分享
8个回答
添加回答
43
我要offer求你了
hashmap的构造方式的一种,就是构造一个长度为7的数组(哈希函数的除数), 把每个余数相同的数去对应的数组元素里面去找,数组存放的是链表,遍历链表,如果当前指针指向的元素与查找的元素相同就返回,如果找不到,就在最后添加上这个元素。
33%7=5->1 (数组元素是空链表,直接添加元素,比较次数是1)
24%7=3->1
8%7=1->1
17%7=3->2(在构造数组的nums[2],之前已经存储了一个3(在24%7),所以需要比较两次)
21%7=0->1
10%7=3->3
res = (1+1+1+2+1+3)/6=1.5
我是按照leetcode上面一道构造hashmap的题目来说的,不知道对不对,欢迎指点。
发表于 2019-12-02 15:21:03
回复(1)
36
卡卡罗特xxx
33/7=5, 查找33需要1次;
24/7=3,查找24需要1次;
8/7=1,查找8需要1次;
17/7=3,查找17需要2次;
21/7=0,查找21需要1次;
10/7=3,查找10需要3次;
ASL=每个关键字查找的次数之和/关键字的个数=(1+1+1+2+3+1)/6=1.5
发表于 2019-09-05 09:56:26
回复(3)
6
Jack201809052301207
哈希表不考虑冲突查找的时间复杂度是O(1),而考虑冲突就是取决于使用解决冲突的方式,如果是链地址解决冲突的话,时间复杂度是n/2。如果是红黑树的话,就是log2(n)。这里的散列后3号数组有3个链表节点,所以时间复杂度是3/2=1.5。
发表于 2020-04-02 21:16:53
回复(0)
3
牛客小妞号
hashmap的构造方式的一种,就是构造一个长度为7的数组(哈希函数的除数), 把每个余数相同的数去对应的数组元素里面去找,数组存放的是链表,遍历链表,如果当前指针指向的元素与查找的元素相同就返回,如果找不到,就在最后添加上这个元素。
33%7=5->1 (数组元素是空链表,直接添加元素,比较次数是1)
24%7=3->1
8%7=1->1
17%7=3->2(在构造数组的nums[2],之前已经存储了一个3(在24%7),所以需要比较两次)
21%7=0->1
10%7=3->3
res = (1+1+1+2+1+3)/6=1.5
我是按照leetcode上面一道构造hashmap的题目来说的,不知道对不对,欢迎指点。
发表于 2021-06-03 13:13:18
回复(0)
1
看见我请叫我去刷题
主要模,可能存在碰撞回增加次数,再除以要查找的总数,取平均
发表于 2022-04-13 11:02:14
回复(0)
0
得偿所愿一切顺利
相同余数多出现一次,查找多一次;数据10包括自己在内有三个余数“3”,则需要找到10需要查找3次
发表于 2023-08-01 15:05:57
回复(0)
0
牛客321509759号
10除7余数写成2😂
发表于 2023-06-13 11:48:34
回复(0)
0
牛客814252680号
那这个长度为10是无用条件吗
发表于 2021-12-21 00:04:05
回复(1)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
哈希
查找
来自:
小米2018秋招测试开...
上传者:
小小
难度:
8条回答
693收藏
4966浏览
热门推荐
相关试题
静态变 static在 同的实 中...
小米集团
Java工程师
C++工程师
测试工程师
2018
评论
(0)
来自
小米2018秋招测试开发...
在网络字节序中,所谓”小端”(li...
小米集团
操作系统
Java工程师
C++工程师
测试工程师
2018
评论
(4)
来自
小米2018秋招测试开发...
运行下面代码,输出的结果是()
小米集团
Java
Java工程师
C++工程师
测试工程师
2018
JavaSE
评论
(110)
来自
小米2018秋招测试开发...
在放大电路中,抑制温漂的方法包括下...
模拟电路
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题