假设哈希算法为 h(x) = x%13,冲突解决办法为线性探查法,哈希表的大小为13,依次插入元素 3,6,16,17,20,7 后,哈希表中的元素将如何分布?

首先,将 3 插入哈希表中,计算其哈希值为 h(3)=3%13=3,插入到哈希表的位置 3 上。

接着,将 6 插入哈希表中,计算其哈希值为 h(6)=6%13=6,插入到哈希表的位置 6 上。

然后,将 16 插入哈希表中,计算其哈希值为 h(16)=16%13=3,发现位置 3 已经被占用,因此采用线性探查法,从位置 3 开始向后查找空闲位置,直到找到位置 4 为空闲位置,然后将 16 插入到位置 4 上。

接下来,将 17 插入哈希表中,计算其哈希值为 h(17)=17%13=4,插入到哈希表的位置 4 上。

然后,将 20 插入哈希表中,计算其哈希值为 h(20)=20%13=7,插入到哈希表的位置 7 上。

最后,将 7 插入哈希表中,计算其哈希值为 h(7)=7%13=7,发现位置 7 已经被占用,因此采用线性探查法,从位置 7 开始向后查找空闲位置,直到找到位置 8 为空闲位置,然后将 7 插入到位置 8 上。

因此,哈希表中的元素为:[3, 6, 16, 17, 20, 7, None, None, None, None, None, None, None]。其中,None 表示空闲位置。


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

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