什么是哈希表的二次探测法?

daydayup1908 2009-09-21 08:13:37

例如:为什么啊?

设哈希表长为14,哈希函数H(key)=key%11,表中已有数据的关键字为15,38,61,84,四个,现将关键字为49的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是( )。
A.8 B.3 C.5 D.9


...全文
14010 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
wslsnsm 2011-12-22
  • 打赏
  • 举报
回复
显然答案是9
a524785960 2010-03-20
  • 打赏
  • 举报
回复
答案为9
增量序列:1 -1 4 -4 ....k*k -k*k
wb347232897 2010-01-03
  • 打赏
  • 举报
回复
答案是 9
gift925 2009-11-26
  • 打赏
  • 举报
回复
我认为是这样的:
15%11=4;
38%11=5;
61%11=6;
84%11=7;

49%11=5;冲突。d1=+1;M=14
(5+1)%14=6;冲突;
(5-1+14)%14=4;还是冲突
(5+4)%14=9;没有冲突。OK
gift925 2009-11-26
  • 打赏
  • 举报
回复
9
zbing0203 2009-09-27
  • 打赏
  • 举报
回复
9是对的
rosewj 2009-09-25
  • 打赏
  • 举报
回复
数据结构课上讲过。。可是都忘光了。。。再次学习下
Afzarka 2009-09-25
  • 打赏
  • 举报
回复
为什么我算的结果是 9 呢?
49%11 = 5
二次散列:
(5+1)%14 = 6 冲突,继续散列
(5+4)%14 = 9 不冲突。。。

我看的数据结构书上di的取值没有负值的,只有1,4,9,。。。不知道到底能不能取负值?
sytstarac 2009-09-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyi8808 的回复:]
处理冲突的方法:

1、开放定址法

Hi=(H(key)+di) MOD m i=1,2,...,k(k <=m-1)

其中m为表长,di为增量序列

如果di值可能为1,2,3,...m-1,称线性探测再散列。

如果di取值可能为1,-1,2,-2,4,-4,9,-9,16,-16,...k*k,-k*k(k <=m/2)

称二次探测再散列。


更正一下:

上面得出的答案 A.8 用的是线性探测再散列。

如果用二次探测再散列,答案应该是 B.3。

[/Quote]
di=k^2,-k^2(k<=m/2)时,不是散到表外面去了吗?
nathan_sz 2009-09-24
  • 打赏
  • 举报
回复
4楼正解
adfas 2009-09-22
  • 打赏
  • 举报
回复
问个题目需要把奶子也露出来么?
luandj 2009-09-22
  • 打赏
  • 举报
回复
二次在散列di取值就应该是(1,-1,4,-4,9,-9...k*k,-k*k)(k<=m/2)
没有2,-2,估计是打错了



[Quote=引用 5 楼 daydayup1908 的回复:]
答案给的是A(8),

如果di取值可能为1,-1,2,-2,4,-4,9,-9,16,-16,...k*k,-k*k(k <=m/2)

序列不是 1, -1, 4, -4, 9, -9, 16...吗

2和-2怎么来的啊?
[/Quote]
wen_long2008 2009-09-22
  • 打赏
  • 举报
回复
简单来说,就是一次没有取到想要的值,在去哈希表中取一次
数据结构里有查找排序相关章节有详细解释
daydayup1908 2009-09-21
  • 打赏
  • 举报
回复
答案给的是A(8),

如果di取值可能为1,-1,2,-2,4,-4,9,-9,16,-16,...k*k,-k*k(k <=m/2)

序列不是 1, -1, 4, -4, 9, -9, 16...吗

2和-2怎么来的啊?
wuyi8808 2009-09-21
  • 打赏
  • 举报
回复
处理冲突的方法:

1、开放定址法

Hi=(H(key)+di) MOD m i=1,2,...,k(k<=m-1)

其中m为表长,di为增量序列

如果di值可能为1,2,3,...m-1,称线性探测再散列

如果di取值可能为1,-1,2,-2,4,-4,9,-9,16,-16,...k*k,-k*k(k<=m/2)

二次探测再散列




更正一下:

上面得出的答案 A.8 用的是线性探测再散列

如果用二次探测再散列,答案应该是 B.3。
光宇广贞 2009-09-21
  • 打赏
  • 举报
回复
楼主能否把头像的原图传我一份……
wuyi8808 2009-09-21
  • 打赏
  • 举报
回复
15 % 11 = 4
38 % 11 = 5
61 % 11 = 6
84 % 11 = 7

而:
49 % 11 = 5

因为 5、6、7 已经冲突,我想答案应该是:A.8。
  • 打赏
  • 举报
回复
不明白。。期待!

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧