【问题标题】:Checking membership with open chaining and separate addressing使用开放链和单独寻址检查成员资格
【发布时间】:2012-03-24 02:04:20
【问题描述】:

我正在实现一个没有删除的哈希表。但是,它将进行许多检查以查看是否包含密钥,但许多检查一无所获。我最初计划采用某种形式的开放寻址,因为我的印象是开放寻址比单独链接更快。然后我想到开放寻址中的查找必须检查每个元素以确保不存在某些内容。它是否正确?如果是这样,在您经常需要检查成员资格的一般情况下,认为单独的链接会更快是正确的吗?

谢谢!

【问题讨论】:

    标签: algorithm hash hashtable


    【解决方案1】:

    如果您的哈希表要增长,即使是适度增长,您也可以使用第二个哈希来解决冲突。现在,您可以在第二个子表上选择开放寻址与链接。您必须确保两个哈希的冲突尽可能少。

    编辑:

    是的,这只是链接的另一个版本,在 DB 中使用了一些更好的变体。现在是否相关取决于您将来的系统。凭直觉,我同意开放寻址将达到其极限。你应该寻找different types of chaining

    【讨论】:

    • 所以你是在建议一种链接形式,我将每个存储桶变成另一个哈希表?然后同样的问题再次出现在第二级表中,但不会再出现了?
    • 如果我理解错了,请见谅,但鉴于您建议链接,这是否意味着我的理解是正确的?
    • 是的,当您不使用链表而是使用哈希表时,您可以将其视为链接。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-02
    • 1970-01-01
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    相关资源
    最近更新 更多