【问题标题】:How to indicate the index when storing hashing table?存储哈希表时如何指示索引?
【发布时间】:2017-03-22 07:13:45
【问题描述】:

您需要在哈希表中存储一些数字。碰撞由封闭的散列方法处理(没有 链式)。该表有 4 个桶,哈希函数为 KmodN,其中 N 为桶数。 存储项目的命令如下所示,并按给定的顺序执行。 数字 8 将存储在哪个桶(索引)中?

hashtable.add(2)
hashtable.add(4)
hashtable.add(6)
hashtable.add(8)

我希望它像我想的那样简单,所以我会选择 0 ?

【问题讨论】:

标签: algorithm hashtable


【解决方案1】:

封闭式散列法表示只有 1 个项目/桶。没有完成任何链接。因此,hashtable.add(2) 将使存储桶position 0 被占用。

现在hashtable.add(8) 也将散列到桶position 0。这是碰撞

在封闭散列中,有一种重新散列策略,我们尝试其他散列函数给出的其他位置,如果找到空白位置,我们将项目填充到该位置,如果找不到任何空白位置,我们声明哈希表已满。

因此,如果您的 rehash 函数哈希到 position 3,则该项目将进入该存储桶,否则它将声明哈希表已满。但是,除非您说明您的重新散列策略,否则没有什么可以确定。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 2012-11-10
    • 1970-01-01
    • 2012-11-12
    • 2017-01-22
    相关资源
    最近更新 更多