哈希表数组的大小

时间:2015-05-03 19:14:16

标签: c++ hash hashtable

快速问题为什么散列表大小比输入数组大两倍更好?为什么我希望表格大小为40(如果我的数组大小为20)不是更接近甚至是20?

2 个答案:

答案 0 :(得分:0)

这取决于碰撞方法。如果你有一个完美的哈希方法,那么20个数组足以容纳20个键,但在大多数情况下会有冲突,这意味着它们必须放在数组中的新位置并找到那个位置很困难(有时候不可能) )如果只剩下一个空格。

答案 1 :(得分:0)

你必须采取预防措施。假设大小为20.并且有20个值要放置。如果散列函数不适合数据并且所有数据都被定向到最后一个点20,并且没有适当的翻转措施,则数据将被放入下一个索引,即21.如果所有20个数据要被映射到最后一个索引,你将需要20个以上的位置。因此,对于数据大小n,最好具有哈希表2n的大小