二次探测法处理冲突例题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

二次探测法处理冲突例题
摘要:
1.二次探测法的概念及原理
2.二次探测法处理散列冲突的步骤
3.构造哈希函数及散列冲突的解决
4.应用实例:在0-10 的散列地址空间中对关键字序列构建哈希表
5.求等概率情况下查找成功时的平均查找长度
正文:
一、二次探测法的概念及原理
二次探测法是一种处理散列冲突的方法,其主要思想是在散列过程中,当发生不同关键字映射到同一个散列地址的现象时,通过二次探测法来寻找下一个可用的散列地址,并将冲突元素存储在该地址的后移偏量。

二、二次探测法处理散列冲突的步骤
1.确定增量序列:二次探测法需要先确定一个增量序列,这个序列通常是首项为1,公比为2 的等比数列。

2.计算冲突地址的后移偏量:当遇到散列冲突时,根据增量序列计算出冲突地址的后移偏量。

3.查找下一个可用地址:根据计算出的后移偏量,找到下一个可用的散列地址。

4.将冲突元素存储在新地址:将冲突元素存储在新找到的散列地址的后移偏量处。

三、构造哈希函数及散列冲突的解决
在实际应用中,我们通常使用除留余数法构造哈希函数,即哈希函数H(k) = k MOD m,其中m 为散列表的长度。

当发生散列冲突时,可以使用二次探测法处理。

四、应用实例:在0-10 的散列地址空间中对关键字序列构建哈希表
假设我们有一个关键字序列为{22, 41, 53, 46, 30, 13, 01, 67},需要在0-10 的散列地址空间中构建一个哈希表。

首先,计算哈希函数的值:
- H(22) = 22 MOD 11 = 10
- H(41) = 41 MOD 11 = 0
- H(53) = 53 MOD 11 = 10
- H(46) = 46 MOD 11 = 4
- H(30) = 30 MOD 11 = 7
- H(13) = 13 MOD 11 = 3
- H(01) = 1 MOD 11 = 1
- H(67) = 67 MOD 11 = 6
接下来,根据二次探测法处理散列冲突。

假设序列中的元素依次存储在散列表中的地址为:10, 0, 10, 4, 7, 3, 1, 6。

当发生冲突时,根据二次探测法计算后移偏量,并将冲突元素存储在新的地址。

五、求等概率情况下查找成功时的平均查找长度
等概率情况下,每个关键字在散列表中的分布是均匀的。

相关文档
最新文档