如何计算哈希表中的平均键比较?

How to calculate average key comparisons in a hashtable?

假设我有一个散列 table,带有单独的链接。 它有密钥:1547、2333、6982、3356、1544 它的散列函数为 x mod 7.

散列table:

|1547|

|    |

|2333|

|6982| -> |3356|

|1544|

假设我搜索的每个键都成功了,我是否可以像下面这样计算平均键比较?:

如果我要找一个没有被碰撞过的key(1547,2333,1544),只需要比较一次。因此,基于散列 table,我有 3 个比较。

6982->3356需要比较2次

因此,平均而言,我有 (3+2)/5 = 1 次比较。

你的算术有点不对:你在数 3356 但忘记了 6982(这也是一个关键)。

正确的计算是

(4*1 + 1*2) / 5 = 1.2