调整哈希表大小的最佳方法

Yah*_*din 6 hashmap data-structures

我正在创建自己的实现来散列表用于教育目的.

增加哈希表大小的最佳方法是什么?

我目前加倍哈希数组大小.

我正在使用的散列函数是:key mod arraysize.

这个问题是如果键是:2,4,6,8,那么数组大小将继续增加.

克服这个问题的最佳方法是什么?有没有更好的方法来增加哈希表大小?改变我的散列函数会有帮助吗?

注意:我的键都是整数!

Jim*_*hel 13

哈希表通常通过确保哈希表大小是素数来避免此问题.调整表格大小时,将大小加倍,然后向上舍入到大于该值的第一个素数.这样做可以避免类似于您描述的群集问题.

现在,确实需要一点时间才能找到下一个素数,但不是很多.与重新散列哈希表内容所涉及的时间相比,找到下一个素数几乎不需要时间.有关说明,请参阅优化错误的内容.