下周我有数据结构和算法考试,我正在看一些样本问题,但我不能理解以下问题:
解释哈希表的比例之间的关系(使用开放寻址)
已填充和预期搜索时间。
对我来说,搜索时间是O(1),但我认为这不是一个好的答案,有人能帮忙吗?
最佳答案
开放寻址是解决哈希表中冲突的一种方法。
开放寻址有三种众所周知的探测方法:
线性探测
二次探测
双重散列
在不丧失一般性的情况下,我们可以假设使用任何探测方法。
假设您有hash函数h
和元素E = [e1, e2, ..., en]
现在假设h
不太好,所以对于E
中的每个元素,我们都有h(ex) = c
,其中c
是一个常数现在,如果您按顺序添加E
中的元素,然后请求第n
个元素,那么每次调用的访问时间将不是O(1)而是O(n)。
关于algorithm - 哈希表的比例(使用开放式寻址)与预期搜索时间之间的关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20405865/