【发布时间】:2014-11-25 13:18:41
【问题描述】:
如果一个哈希表包含 N 个不同的项目,并且没有重载,那么 N 个项目的哈希必须有大约 lg(N) 位,否则太多的项目将获得相同的哈希值。
但通常说查找哈希表平均需要 O(1) 时间。
不可能在O(1)时间内生成lg(N)位,所以哈希表复杂度的标准结果是错误的。
我的推理有什么问题?
【问题讨论】:
-
O(1) 只是一个预期:D
-
见cs.stackexchange.com/q/1643(链接了该网站上似乎相同的问题:cs.stackexchange.com/q/27748)
-
@DavidRR 在这里丢失已接受的答案将是一种耻辱。另一个问题的公认答案在我看来并不合理——它断言不可能——一个人可以有一个固定大小的散列函数(读取固定数量的输入),但仍然保留 O(1) 查找随着表中的条目数增加到无穷大。 R.Martinho Fernandes 的答案在我看来是完全正确的,我发现它对我理解复杂性理论很有帮助。
-
@PaulHankin 对封闭问题的回答永远不会丢失。只是不能将新答案添加到已关闭的问题中。也就是说,也许更公平地说,您的问题和我引用的问题是相关而不是重复。