📌  相关文章
📜  国际空间研究组织 | ISRO CS 2017 |问题 50

📅  最后修改于: 2022-05-13 01:58:01.827000             🧑  作者: Mango

国际空间研究组织 | ISRO CS 2017 |问题 50

使用散列函数将字符串KRPCSNYTJM 的字符插入到大小为 10 的散列表中

h(x) = ((ord(x) - ord(A) + 1)) mod 10

如果使用线性探测来解决冲突,则以下插入会导致冲突
(A)
(B) C
(C)
(D) P答案: (C)
说明:大小为 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 引起了碰撞。

最终哈希表将是:

0    T
1    K
2    J
3    C
4    N
5    Y
6    P
7    M
8    R
9    S

所以,选项(C)是正确的。
这个问题的测验