开放定址法演示
来源:互联网 发布:php sleep 和 usleep 编辑:程序博客网 时间:2024/04/26 05:46
以下是列举收集来的三个题目,三个题目是同一个意思,
解答:为了减少冲突,通常令装填因子α<l。这里关键字个数n=10,不妨取m=13,此时α≈0.77,散列表为T[0..12],散列函数为:h(key)=key%13。
二、题目:
已知一个线性表(38,25,74,63,52,48),假定采用h(k)=k%6计算散列地址进行散列存储,若用线性探测的开放定址法处理冲突,则在该散列表上进行查找的平均查找长度为()。
2、解题过程:
1、线性表第1个元素(38):
2、线性表第2个元素(25):
3、线性表第3个元素(74):
4、线性表第3个元素(74):
5、线性表第4个元素(63):
6、线性表第4个元素(63):
7、线性表第5个元素(52):
8、线性表第5个元素(52):
9、线性表第6个元素(48):
经过上述定址过程,线性表中的各个元素都有了唯一的地址。
2.3、结果
在该散列表上进行查找的平均查找长度为:9/6 = 1.5,
例如:散列函数为hash(x)=x MOD 13,用线性探测,建立了哈希表之后,如何求查找不成功时的平均查找长度!?
不成功次数:
查找成功时的平均查找长度:ASL=(1+3+1+2+2+1+1+9+1+1)/10 =2.2
查找不成功时的平均查找长度:ASL=(9+8+7+6+5+4+3+2+1+1+2+1+10)/13=4.54
说明:
第n个位置不成功时的比较次数为,第n个位置到第1个没有数据位置的距离。
至少要查询多少次才能确认没有这个值。
(1) 查询hash(x)=0,至少要查询9次遇到表值为空的时候,才能确认查询失败。
(2) 查询hash(x)=1,至少要查询8次遇到表值为空的时候,才能确认查询失败。
(3) 查询hash(x)=2,至少要查询7次遇到表值为空的时候,才能确认查询失败。
(4) 查询hash(x)=3,至少要查询6次遇到表值为空的时候,才能确认查询失败。
(5) 查询hash(x)=4,至少要查询5次遇到表值为空的时候,才能确认查询失败。
(6) 查询hash(x)=5,至少要查询4次遇到表值为空的时候,才能确认查询失败。
(7) 查询hash(x)=6,至少要查询3次遇到表值为空的时候,才能确认查询失败。
(8) 查询hash(x)=7,至少要查询2次遇到表值为空的时候,才能确认查询失败。
(9) 查询hash(x)=8,至少要查询1次遇到表值为空的时候,才能确认查询失败。
(10)查询hash(x)=9,至少要查询1次遇到表值为空的时候,才能确认查询失败。
(11)查询hash(x)=10,至少要查询2次遇到表值为空的时候,才能确认查询失败。
(12)查询hash(x)=11,至少要查询1次遇到表值为空的时候,才能确认查询失败。
(13)查询hash(x)=12,至少要查询10次遇到表值为空(循环查询顺序表)的时候,才能确认查询失败。
- 开放定址法演示
- 开放定址Hash法
- 哈希表 开放定址法
- 开放定址法处理冲突
- 散列(开放定址法)
- 哈希表——开放定址法
- hash之开放定址法解决冲突
- 散列表的实现-开放定址法
- 散列表之开放定址法
- 哈希表查找 — 开放定址法
- 处理散列冲突:开放定址法
- 开放定址法实现散列表
- 散列 开放定址法 C实现
- 散列 - 数据结构 (分离链接法、开放定址法)
- 开放定址法(线性探测),拉链法 -Hash算法
- 数据结构——杂凑表(开放定址法)
- 开放定址法解决hash冲突(C语言)
- (5)散列冲突处理:开放定址法
- 将博客搬至CSDN
- #include<list>
- Session和作用域
- STM32F103 输入捕获
- 预编译命令中的#号的作用
- 开放定址法演示
- 一点关于编译器不同优化级别的比较
- MAC下编译PHP5.5.7问题:configure: error: freetype.h not found.
- 黑马程序员-day02-Java基础语法
- 新建项目总是产生一个appcompat_v7和fragment_main.xml
- redis 清空
- 不用Cygwin,不用命令行,Eclipse编译NDK
- 高考战争在即 错在谁?
- ORACLE REDO--《深入浅出ORACLE第六章》