给定一组查找关键字(19,14,23,1,65,20,84,27,55,11,10,79) 哈希函数为:H(key)=key % 13, 哈希表长为m=15,设每个记录的查找概率相等。

给定一组查找关键字(19,14,23,1,65,20,84,27,55,11,10,79)

  1. 题目要求

哈希函数为:H(key)=key % 13, 哈希表长为m=15,设每个记录的查找概率相等。

  1. 请画出按照线性探测再散列处理冲突得到的哈希表(给出求解过程),并计算查找成功和查找失败时的平均查找长度各是多少。

  2. 请画出按照链地址法处理冲突得到的哈希表,并计算查找成功和查找失败时的平均查找长度各是多少。

  1. 解题思路

2.1 线性探测

哈希表长为m=15;
分别得到的结果进行线性探测散列排列:

在这里插入图片描述
冲突的关键字按照关键字的原始排序进行向后的推移
图中的冲突的关键字“1”他的现地址为1,但这个位置上已经被关键字“14”所占领,遇到了冲突,探测下一个位置2,位置2上没有关键字,放入即可;
在这里插入图片描述
关键字“84”在原始的关键字中排列在前,他现在的地址为6,但这个位置已经被关键字“19”占领,遇到了冲突,探测下一个地址7,但这个位置上也已经被关键字“20”占领,继续探测下一个地址8,位置8上没有关键字,放入即可;
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
循环执行,到了这一步所有的关键字都已经填入哈希表,散列表的构造已经完成
在这里插入图片描述
注:散列表的比较次数与关键字在哈希表中插入位置的次数有关,
查找成功的平均查找长度为:
ASL=(1+1+2+1+3+4+1+1+2+1+1+2)/12
在这里插入图片描述
查找不成功的平均查找长度为:
ASL=(10+9+8+7+6+5+4+3+2+1+2+3+4)/13

注意:
区别概念平均成功查找次数和平均不成功查找次数。
平均成功查找次数=每个关键词比较次数之和÷关键词的个数
平均不成功查找次数=每个位置不成功时的比较次数之和÷表长(所谓每个位置不成功时的比较次数就是在除余位置内,每个位置到第一个为空的比较次数。

2.2链式地址法:

在这里插入图片描述
成功时平均查找次数:(1X5+2X4+3X1+4X1)/12=5/3
失败时平均查找次数:(4+2+2+1+2+1)/11 =1

注意:链地址法成功时查找次数的分母是哈希表元素的个数,分子为纵向比较;
失败时,分母为哈希表的长度,分子为横向比较(几个);

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值