将字符串KRPCSNYTJM的字符插入到大小为 10 的哈希表中。
使用哈希函数
h(x) = ( ord(x) – ord("a") + 1 ) mod10
如果使用线性探测来解决冲突,那么下面的插入会导致冲突
(A)是
(乙)丙
(C) 男
(四)答案: (C)
解释:
(a) 大小为 10 的哈希表的索引为 0 到 9。
哈希函数= h(x) = ((ord(x) – ord(A) + 1)) mod 10
所以对于字符串KRPCSNYTJM:
K 将插入索引:(11-1+1) mod 10 = 1
索引处的 R:(18-1+1) mod 10 = 8
索引处的 P:(16-1+1) mod 10 = 6
索引处的 C:(3-1+1) mod 10 = 3
S 在索引处:(19-1+1) mod 10 = 9
索引处的 N:(14-1+1) mod 10 = 4
Y 在索引 (25-1+1) mod 10 = 5
T 在索引 (20-1+1) mod 10 = 0
J at index (10-1+1) mod 10 = 0 // 第一次碰撞发生。
M at index (13-1+1) mod 10 = 3 //第二次碰撞发生。
只有 J 和 M 导致了碰撞。
(b) 最终哈希表将是:
0 T
1 K
2 J
3 C
4 N
5 Y
6 P
7 M
8 R
9 S
这个问题的测验