是在哈希表O(1)中查找吗?

保罗·汉金

如果哈希表包含N个不同的项,并且没有过载,则N个项的哈希值必须具有大约lg(N)位,否则太多的项将获得相同的哈希值。

但是通常认为哈希表查找平均需要O(1)时间。

无法在O(1)的时间内生成lg(N)位,因此散列表复杂性的标准结果是错误的。

我的推理怎么了?

R.马丁尼奥·费尔南德斯

您的推理有问题的地方是使用了相互矛盾的“时间”定义。

当有人说在哈希表中查找需要O(1)时间时,通常意味着它需要进行O(1)比较,也就是说,找到一个项目所需的比较次数以一个常量为界。在“时间”的概念下,用于计算哈希的实际时间(如您将以秒为单位进行度量)不会引起变化。

在比较中测量时间是一个近似值,尽管它可能无法像以秒为单位测量时间那样反映现实,但仍可提供有关哈希表行为的有用信息。

对于大多数算法的渐近复杂度描述,这种情况是正确的:人们经常使用“时间”来表示非常抽象的含义,这不是“时间”的非正式含义,但通常是“操作次数”的某种变体”(这种操作通常不加说明,应该是显而易见的,或者从上下文中清楚可见)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SML中哈希表的查找功能

来自分类Dev

哈希表在C中的查找功能?

来自分类Dev

如何从O(1)中的C ++哈希表中随机检索元素

来自分类Dev

立即在定义为文字的哈希表中查找值

来自分类Dev

使用测试路径在哈希表中查找值项

来自分类Dev

在PowerShell中,迭代时可以修改哈希表吗?

来自分类Dev

这本字典或哈希表是 Typescript 中的吗?

来自分类Dev

如何通过双链链接删除哈希表O(1)?

来自分类Dev

使用O(n)中的哈希表在字符串S中查找包含字符串T中所有字符的最小长度子字符串

来自分类Dev

哈希表中的WinForm

来自分类Dev

方案中的哈希表

来自分类Dev

从哈希表中删除

来自分类Dev

从嵌套哈希中查找值

来自分类Dev

在多维哈希Perl中查找

来自分类Dev

在 Ruby 哈希中查找值

来自分类Dev

如何在 C++ 中的 2d 哈希表中查找值

来自分类Dev

哈希表反向查找以找到最小密钥

来自分类Dev

在多个(> 50)列上使用哈希的查找表

来自分类Dev

哈希表反向查找以找到最小密钥

来自分类Dev

javascript中的哈希表和哈希图

来自分类Dev

哈希函数和哈希表中的存储

来自分类Dev

如何在R中访问实际的内部因素查找哈希表

来自分类Dev

关于发生冲突时在哈希表中查找信息的困惑

来自分类Dev

从具有 k 差异的数组中查找整数对(仅使用哈希表)

来自分类Dev

我们可以使用1个表实现布谷鸟哈希吗?

来自分类Dev

哈希表可序列化吗?

来自分类Dev

我可以将响应对象存储在哈希表中吗?

来自分类Dev

我可以将对象构造函数存储到数组或哈希表中吗?

来自分类Dev

在Lisp中复制哈希表