【问题标题】:How to avoid hash-collision when elements are known当元素已知时如何避免哈希冲突
【发布时间】:2016-03-14 15:29:27
【问题描述】:

如果我们在构建哈希表之前知道输入的大小,是否可以避免哈希函数中的哈希冲突? 换句话说,我们如何在 O(1) 时间内完成最坏情况的插入?

【问题讨论】:

  • 你知道输入的size,还是实际的item?
  • @AmiTavory 假设我对输入的一切都了如指掌——大小、每个项目的信息......

标签: hash hashtable


【解决方案1】:

您要求的是perfect hash function。有许多已知的算法(参见this article in Dr. Dobbs' 一种这样的算法)。他们中的大多数都依赖于一些随机参数化方案,这些方案有很大的机会发现没有冲突。一旦找到这样的参数,你就有了一个完美的哈希值。请参阅 this lecture 以获得可读的介绍。

【讨论】:

    猜你喜欢
    • 2018-08-04
    • 2014-10-28
    • 1970-01-01
    • 2015-11-17
    • 1970-01-01
    • 2013-12-06
    • 1970-01-01
    • 2012-09-16
    • 2013-10-01
    相关资源
    最近更新 更多