【发布时间】:2012-03-24 02:04:20
【问题描述】:
我正在实现一个没有删除的哈希表。但是,它将进行许多检查以查看是否包含密钥,但许多检查一无所获。我最初计划采用某种形式的开放寻址,因为我的印象是开放寻址比单独链接更快。然后我想到开放寻址中的查找必须检查每个元素以确保不存在某些内容。它是否正确?如果是这样,在您经常需要检查成员资格的一般情况下,认为单独的链接会更快是正确的吗?
谢谢!
【问题讨论】:
我正在实现一个没有删除的哈希表。但是,它将进行许多检查以查看是否包含密钥,但许多检查一无所获。我最初计划采用某种形式的开放寻址,因为我的印象是开放寻址比单独链接更快。然后我想到开放寻址中的查找必须检查每个元素以确保不存在某些内容。它是否正确?如果是这样,在您经常需要检查成员资格的一般情况下,认为单独的链接会更快是正确的吗?
谢谢!
【问题讨论】:
如果您的哈希表要增长,即使是适度增长,您也可以使用第二个哈希来解决冲突。现在,您可以在第二个子表上选择开放寻址与链接。您必须确保两个哈希的冲突尽可能少。
编辑:
是的,这只是链接的另一个版本,在 DB 中使用了一些更好的变体。现在是否相关取决于您将来的系统。凭直觉,我同意开放寻址将达到其极限。你应该寻找different types of chaining
【讨论】: