HashTable实现与一组ZERO冲突?深思熟虑?

时间:2014-04-01 16:10:53

标签: c++

考虑一个数组大小为N = 1500个槽的哈希表。哈希表存储来自范围[1000000,1001500]的1400个整数。给一个哈希函数,保证不会发生冲突?

我不明白,如果元素不同,你怎么能这样做?如果他们是不同的那么是的HashKey =整数你完成了吗?

1 个答案:

答案 0 :(得分:0)

如上所述,我不相信你可以解决这个问题。您有1501个可能的候选项目可以容纳1500个桶,所以除非您对输入集有所了解,否则您无法为其创建哈希值。

如果您提前知道即使在1400中不存在的一个特定项目,问题也变得微不足道。

template <int MISSING_ITEM>
int hash(int input)
{
    if(MISSING_ITEM != 1001500 && input == 1001500)
    {
        input = MISSING_ITEM;
    }

    return input - 1000000
}