社区
数据结构与算法
帖子详情
什么是哈希表的二次探测法?
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
打赏
收藏
什么是哈希表的二次探测法?
例如:为什么啊? 设哈希表长为14,哈希函数H(key)=key%11,表中已有数据的关键字为15,38,61,84,四个,现将关键字为49的结点加到表中,用二次探测再散列法解决冲突,则放入的位置是( )。 A.8 B.3 C.5 D.9
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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。
答疑-定制-运维找我
2009-09-21
打赏
举报
回复
不明白。。期待!
用
二次
探测
再散列
法
解决冲突建立
哈希表
并查找
输入(从文件中读取): Data.txt 每行:编号,权重 (1)建立数组,从 “Data.txt” 中读取编号和权重; (2)从键盘读入待查找的权重数值,以除留余数
法
为哈希函数,
二次
探测
再散列
法
解决冲突建立
哈希表
,基于哈希算
法
从数组中查找相应的记录,计算相应的查找时间,并在屏幕上输出显示。(提示:当前计算机时间 函数 C\C++中参见GetTickCount)。 (3)从键盘读入待查找的权重数值,以顺序查找算
法
从数组中查找相应的记录。计算相应的查找时间,并在屏幕上输出显示。 (4)在实验报告(格式已给出)中记录由(2)和(3)查找同一个数时的实验结果。
散列表 (
哈希表
,线性
探测
再散列)
散列表,也称为
哈希表
。根据设定的哈希函数H(key)和处理冲突的方
法
将一组关键字映像到一个有限的连续的地址集(区间)上,并以关键字在地址集中的“像”作为记录在表中的存储位置的表。 哈希函数的构造方
法
:1)直接定地址
法
2)数字分析
法
3)平方取中
法
4)折叠
法
5)除留余数
法
6)随机数
法
处理冲突的方
法
:1)开放定址
法
(线性
探测
再散列,
二次
探测
再散列,伪随机
探测
再散列) 2)再哈希
法
3)链地址
法
4)建立一 公共溢出区
哈希查找_数据结构实验报告
题目:编程实现
哈希表
的造表和查找算
法
。 要求:用除留余数
法
构造哈希函数,用
二次
探测
再散列解决冲突。 需求分析 用户可以根据自己的需求输入一个顺序表(
哈希表
) 通过用除留余数
法
构造哈希函数,并用开放地址的
二次
探测
再散列解决冲突。 在经过排序后显示该
哈希表
。 程序执行的命令包括: (1)创建
哈希表
(2)输出
哈希表
(3)
二次
探测
再散列解决冲突
cpp代码-
二次
探测
再散列
哈希表
cpp代码-
二次
探测
再散列
哈希表
C语言 数据结构
哈希表
C语言数据结构 除留余数
法
二次
探测
再散列解决冲突
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章