数据结构中哈希表平均查找长度

问题遇到的现象和发生背景

这个是答案错了吧,我算出来是15/9

img

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

首先,我们需要使用 Hash(key) = key mod 11 来计算每个关键字的哈希值。

然后,我们需要按照关键字关键码集 {47,7,29,11,16,92,22,8,3} 的顺序将其依次插入哈希表中。每当遇到冲突时,我们就需要使用线性探测法来解决冲突,即将关键字插入到下一个空位置。

构造出来的哈希表如下:

| 47 | 22 | 92 | 29 | 11 | 16 | 8 | 3 | 7 | X | X |

| 0 | 9 | 2 | 3 | 4 | 5 | 7 | 8 | 10 | X | X |

对于每个关键字,我们都需要进行一次查找操作。我们可以记录每次查找操作需要移动的步数,最后求出这些步数的平均值作为ASL。

对于第一个关键字47, 它的哈希值为47 mod 11 = 0,所以它直接插入哈希表中第0个位置,查找次数为0。
对于第一个关键字47, 它的哈希值为47 mod 11 = 0,所以它直接插入哈希表中第0个位置,查找次数为0。

对于第二个关键字7, 它的哈希值为7 mod 11 = 7,发现第7个位置已经被占用,所以需要使用线性探测法,移动到第8个位置,查找次数为1。

对于第三个关键字29, 它的哈希值为29 mod 11 = 3,发现第3个位置已经被占用,所以需要使用线性探测法,移动到第4个位置,查找次数为1。

对于第四个关键字11, 它的哈希值为11 mod 11 = 0,发现第0个位置已经被占用,所以需要使用线性探测法,移动到第1个位置,查找次数为1。

对于第五个关键字16, 它的哈希值为16 mod 11 = 5,发现第5个位置已经被占用,所以需要使用线性探测法,移动到第6个位置,查找次数为1。

对于第六个关键字92, 它的哈希值为92 mod 11 = 9,发现第9个位置已经被占用,所以需要使用线性探测法,移动到第10个位置,查找次数为1。

对于第七个关键字22, 它的哈希值为22 mod 11 = 0,发现第0个位置已经被占用,所以需要使用线性探测法,移动到第1个位置,查找次数为2。

对于第八个关键字8,它的哈希值为8 mod 11 = 8,发现第8个位置没有被占用,所以插入到第8个位置,查找次数为1。

对于第九个关键字3, 它的哈希值为3 mod 11 = 3,发现第3个位置没有被占用,所以插入到第3个位置,查找次数为1。

最后,得到的哈希表如下:
|位置|关键字|
|0|22|
|1|3|
|2| |
|3|8|
|4|47|
|5|7|
|6|16|
|7| |
|8|11|
|9|92|
|10|29|

计算平均查找长度ASL:
ASL = (1+2+1+1+1+1+1+1+1+1)/9 = 11/9