哈希表查找成功和不成功的算法

哈希表查找成功和不成功的算法

ID:33524002

大小:60.50 KB

页数:9页

时间:2019-02-26

哈希表查找成功和不成功的算法_第1页
哈希表查找成功和不成功的算法_第2页
哈希表查找成功和不成功的算法_第3页
哈希表查找成功和不成功的算法_第4页
哈希表查找成功和不成功的算法_第5页
资源描述:

《哈希表查找成功和不成功的算法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、哈希表查找不成功怎么计算?解答:先建好表,然后可以算出每个位置不成功时的比较次数之和,再除以表空间个数!例如:散列函数为hash(x)=xMOD13,用线性探测,建立了哈希表之后,如何求查找不成功时的平均查找长度!?    地址: 0  1  2  3  4  5  6  7  8  9  10  11  12    数据:39 12  28  15  42  44  6  25  -  -  36  -  38 成功次数:1  3  1  2  2  1  1   9          1   

2、    1不成功次数: 9   8  7  6   5  4  3  2  1  1   2  1    10查找成功时的平均查找长度: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次遇到表值为空的时候,才能确认查询失败。

3、(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)查询

4、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次遇到表值为空(循环查询顺序表)的时候,才能

5、确认查询失败。下面看下2010年2010年全国硕士研究生入学统一考试计算机科学与技术学科联考计算机学科专业基础综合试题中一个考哈希表的题。Question1:将关键字序列(7、8、30、11、18、9、14)散列存储到散列表中。散列表的存储空间是一个下标从0开始的一维数组,散列函数为:H(key)=(keyx3)MOD7,处理冲突采用线性探测再散列法,要求装填(载)因子为0.7。(1)请画出所构造的散列表。(2)分别计算等概率情况下查找成功和查找不成功的平均查找长度。Ans:(1).首先明确一个概

6、念装载因子,装载因子是指所有关键子填充哈希表后饱和的程度,它等于关键字总数/哈希表的长度。根据题意,我们可以确定哈希表的长度为L=7/0.7=10;因此此题需要构建的哈希表是下标为0~9的一维数组。根据散列函数可以得到如下散列函数值表。H(Key)=(keyx3)MOD7,例如key=7时,H(7)=(7x3)%7=21%7=0,其他关键字同理。Key78301118914H(Key)0365560(表1)采用线性探测再散列法处理冲突,所构造的散列表为:地址0123456789关键字714  8 

7、 1130189  (表2)下面对散列表的构造方式加以说明,注意表1中的关键字7和14,30和9,11和18,这三组关键子的H(Key)值相同,这在构建散列表时就会产生冲突,因为他们的地址相同,所以要通过一定的冲突处理方法来解决这个问题。依题,采用线性探测再散列法处理冲突。下面详细介绍如何构建散列表:      第一个key7,它的地址是0,因此放到散列表的数组下表为0的位置,这个位置上没有关键字,因此没有冲突可以直接填入;      第二个key8,它的地址是3,因此放到散列表的数组下表为3的位

8、置,这个位置上没有关键字,因此没有冲突可以直接填入;      第三个key30,它的地址是6,因此放到散列表的数组下表为6的位置,这个位置上没有关键字,因此没有冲突可以直接填入;      第四个key11,它的地址是5,因此放到散列表的数组下表为5的位置,这个位置上没有关键字,因此没有冲突可以直接填入;      第五个key18,它的地址是5,因此放到散列表的数组下表为5的位置,但这个位置上已经有关键字11,遇到了冲突,此时我们根据线性探测再散列法来处理这个冲突,探测下一个位

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。