【发布时间】:2014-04-21 15:47:09
【问题描述】:
我正在创建自己的实现来散列表以用于教育目的。
增加哈希表大小的最佳方法是什么?
我目前将哈希数组大小加倍。
我使用的哈希函数是:key mod arraysize。
这样做的问题是,如果键是:2、4、6、8,那么数组大小会不断增加。
解决此问题的最佳方法是什么?有没有更好的方法来增加哈希表的大小?更改我的哈希函数会有帮助吗?
注意:我的键都是整数!
【问题讨论】:
-
您正在编写自己的实现吗?为什么?最好的方法是从不调整大小。
-
是的。有时需要调整大小,因为您不知道将添加多少元素。我正在制作自己的实现,因为它适用于我在大学的 CS 课程。
-
没有“最好”的方法。这总是需要妥协。
-
(但正如其他人所说,您需要正确散列您的密钥。)
-
@HotLicks 寻找一种永远不需要调整(复制)底层数组/结构的方法/实现是最好的方法。如果有人设计出一种无需复制数据即可扩展底层结构的方法,那么新 Map 将是近乎完美的数据存储解决方案