在各种哈希表实现中,我看到过“魔数”,用于可变哈希表何时应该调整大小(增长)。通常,这个数字在分配的插槽中添加值的65%至80%之间。我假设权衡是更高的数字会导致更多的冲突,较低的数字少于使用更多的内存。
我的问题是这个数字是如何得出的?它是任意的吗?基于测试吗?还是基于其他逻辑?
我的问题是这个数字是如何得出的?它是任意的吗?基于测试吗?还是基于其他逻辑?
碰撞高度依赖于数据和使用的哈希函数。
大部分数值都基于启发式或关于哈希值正常分布的假设。(据我所知,对于可扩展哈希表,约70%的值是典型的,但总有可能构造出这样的数据流,使得你得到更多/更少的碰撞)