这是一个家庭作业问题,但我认为它缺少一些东西。它问:
提供一个由m个键组成的序列来填充一个使用线性探测实现的哈希表,从而使填充它的时间最短。
进而
提供另一个m键序列,但要使填充它的时间最大。如果哈希表实现二次探测,重复这两个问题
我只能假设哈希表的大小为m,既因为它是唯一给出的数字,又因为我们在描述负载因子之前一直使用该字母来解决哈希表大小。但是如果不知道将序列散列到表中的散列函数,我想不出任何序列来做第一个。
如果它是一个糟糕的哈希函数,例如,它将每个条目哈希到同一个索引,那么填充它的最小和最大时间都将花费 O(n) 时间,而不管序列是什么样的。在平均情况下,我假设散列函数没问题,我怎么知道该散列函数填充表需要多长时间?
这些问题与散列函数的关联是否比与散列序列的关联更强?
至于第二个问题,我可以假设,不管散列函数如何,一个大小为m且具有相同键重复m次的序列将提供最大时间,因为它将导致从第二个条目开始的线性探测。我认为这需要 O(n) 时间。那是对的吗?