HashTable中二次探测的运行时间是多少?

时间:2015-03-11 19:06:36

标签: hash hashmap runtime hashtable hashset

这是与 Linear Probing Runtime类似的问题,但它涉及二次探测。

对我而言,线性探测的“理论最坏情况是O(n)”是有道理的,因为在最坏的情况下,你可能必须遍历每个桶(n桶)

二次探测的运行时间是什么?我知道二次方式的二次探针-1,4,9,16 .....我最初的想法是它是log n(指数)的一些变化,但没有一致的基础。

1 个答案:

答案 0 :(得分:1)

如果哈希表中有n - 1个占用的桶,那么无论您检查空桶的顺序如何,都不能排除需要测试n桶的可能性在找到一个空的之前。因此,二次探测的最坏情况不能比O(n)更好。

然而,可能更糟糕的是:我不能立即明白,二次探测可以很好地避免多次测试同一个桶。 (如果选择相对于桶数相对较大的步长,这不是线性探测的问题。)我会猜测二次探测不会重新访问相同的桶足够多次来制作最糟糕的情况比O(n)差,但我无法证明这一点。