线性探测再散列方法是一种解决冲突的方法,当发生冲突时,依次检查下一个位置,直到找到一个空槽或者遍历整个地址空间。

根据题目给出的关键字序列(21, 40, 52, 45, 29, 12, 02, 66)和哈希函数 H(K)=K%11,我们可以将关键字插入到对应的哈希地址中。

第一个关键字 21,通过哈希函数计算得到的哈希地址为 10,该位置为空,插入关键字。

第二个关键字 40,通过哈希函数计算得到的哈希地址为 7,该位置为空,插入关键字。

第三个关键字 52,通过哈希函数计算得到的哈希地址为 8,该位置为空,插入关键字。

第四个关键字 45,通过哈希函数计算得到的哈希地址为 1,该位置为空,插入关键字。

第五个关键字 29,通过哈希函数计算得到的哈希地址为 7,该位置已经被占用,发生冲突。由于线性探测再散列方法,我们需要从下一个位置开始,即哈希地址为 8,该位置为空,插入关键字。

第六个关键字 12,通过哈希函数计算得到的哈希地址为 1,该位置已经被占用,发生冲突。从下一个位置开始,即哈希地址为 2,该位置为空,插入关键字。

第七个关键字 02,通过哈希函数计算得到的哈希地址为 2,该位置已经被占用,发生冲突。从下一个位置开始,即哈希地址为 3,该位置为空,插入关键字。

第八个关键字 66,通过哈希函数计算得到的哈希地址为 0,该位置为空,插入关键字。

最终,关键字序列插入完成后,哈希地址空间如下:

0: 66 1: 45, 12 2: 02 3: 66 4: 5: 6: 7: 40, 29 8: 52 9: 10: 21

等概率下查找成功的平均查找长度(ASL)可以通过以下公式计算:

ASL = (成功查找的平均查找长度 + 失败查找的平均查找长度) / 2

成功查找的平均查找长度 = ∑(查找成功的次数 * 查找成功的步数) / ∑查找成功的次数 失败查找的平均查找长度 = ∑(查找失败的次数 * 查找失败的步数) / ∑查找失败的次数

通过计算可以得到: 查找成功的次数 = 8(关键字序列的长度) 查找失败的次数 = 11(哈希地址空间的大小)- 8(关键字序列的长度)= 3

查找成功的步数 = 1(在插入时已经找到了对应的位置) 查找失败的步数 = 1(在哈希地址空间中遍历一次,直到找到一个空槽)

成功查找的平均查找长度 = (8 * 1) / 8 = 1 失败查找的平均查找长度 = (3 * 1) / 3 = 1

ASL = (1 + 1) / 2 = 1

所以,等概率下查找成功的平均查找长度为 1。

线性探测再散列方法:查找成功平均查找长度实例

原文地址: https://www.cveoy.top/t/topic/qf26 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录