我通过一些老试卷的工作和整个下面传来:哈希表大小调整,线性探测和复杂性
展示出一种封闭的地址哈希算法使用 数据是如何工作的设置
{4, 2, 12, 3, 9, 11, 7, 8, 13, 18}
作为输入例子。假设数组的lenght最初7.你应该证明:
我。如何构建哈希表,一步一步地进行。如何在O(1)时间内实现对散列表的搜索。现在
,因为该阵列被初始设置为7,最大的散列函数我可以使用是n mod 7
,因为有将被插入比阵列的大小以上的元素,该阵列必须被调整大小。
我假设散列函数在调整大小后保持不变?
关于第二部分,如果多个元素哈希到相同的值,如何实现O(1)
搜索?当然,我需要依次通过数组中的聚类元素?
这个假设是否正确?
但不假设我可以直接到达每个元素?如果我正在使用线性探测,并且有相同哈希代码的长链元素,这可能等同于O(n)? – 2013-05-07 16:02:22
开放寻址,找到一个空闲的时隙,最糟糕的情况是会通过哈希表。没有通过你的元素列表。 – Kent 2013-05-07 16:25:45