首页 > 试题广场 >

一个线性序列(30,14,40,63,22,5),假定采用散

[单选题]
一个线性序列(30,14,40,63,22,5),假定采用散列函数Hash(key)=key%7来计算散列地址,将其散列存储在A[0~6]中,采用链地址法解决冲突。若查找每个元素的概率相同,则查找成功的平均查找长度是(      )。
  • 4/3
  • 1
  • 3/2
  • 5/3
30,14,40,63,22,5 %7=2 0 5 0 1 5 hash表是以数组加链表方式存储,两个0和两个5key相同,所以存在链表第二个节点。 所以(1*4+2*2)/6=4/3
发表于 2021-04-08 08:15:02 回复(0)
a
发表于 2023-09-21 21:39:53 回复(0)
平均需要和待查找值比较的关键字次数称为平均查找长度
关键字比较一次则长度加一。这里查找30,14,40,22关键字比较次数是1; 查找63, 5关键字比较次数是2,所以平均长度应该是(1 * 4 + 2 * 2) / 6 = 4 / 3
发表于 2019-10-15 15:40:39 回复(0)
链地址法,链表上的每一个元素无论指针移动多少次,它都算一次查找;与开放定址法不同。
发表于 2019-10-07 11:53:09 回复(1)
注意本题采用的是 链地址法 解决冲突,因此有:
30%7=2,无冲突,查找次数为1;
14%7=0,无冲突,查找次数为1;
40%7=5,无冲突,查找次数为1;
63%7=0,有冲突,使用链地址法,存入该处的链表中,查找次数为2;
22%7=1,无冲突,查找次数为1;
5%7=5,有冲突,使用链地址法,存入该处的链表中,查找次数为2。

平均查找长度为(1+1+1+2+1+2)/6=4/3。

发表于 2022-04-19 22:15:40 回复(0)
采用的是链地址处理的方法啊
发表于 2021-09-16 09:31:43 回复(0)
[0~6]不是7个位置吗
发表于 2023-02-23 15:59:55 回复(0)
hash值分别是2 0 5 0 1 5,那么计算出来就是也就是一次获取hash的为2和1 获取第一个0是1次,第二个0是二次。 5同理。所以总共8次 8/6
发表于 2022-01-09 22:34:50 回复(0)
这题到底咋解决啊!
发表于 2022-01-09 01:17:10 回复(0)
是否可以理解为序列中所有数%7=2,0,5,0,1,5;相同关键字不重复计算,(1+2+5)/6=4/3
编辑于 2021-06-18 12:03:49 回复(0)
哈希表根据关键字的映射地址查找,相同关键字查找需要进行比较,比较一次长度加1。有两个关键字对应两个值,所以查找长度为8,平均8/6。
发表于 2021-04-08 15:43:23 回复(0)
应该是4/3
编辑于 2021-02-20 11:43:43 回复(0)
这个平均查找长度到底是怎么算的啊
发表于 2020-04-20 20:34:55 回复(0)