我理解它背后的“理论”。是链接列表的某种类型或数组,它们在数组中的位置是执行“hashFuction(element)mod array.length”的结果,并且您使用该列表来管理冲突。
我的问题是,阵列的实际长度是多少?我们正在使用最多20,000个节点的图形。但我认为20,000个元素的数组已经效率太低了。
我正在考虑创建一个具有X长度的数组,然后如果它到达那么多元素就像将所有元素复制到2X的数组那样,但问题是它们不会有相同的索引元素和我实际上可以“复制”所有数组,我需要为每个元素执行应用哈希函数来查找它们的新位置,如果我在谈论10,000个元素数组,那将非常慢。
对不起我的语法错误,英语不是我的母语。
答案 0 :(得分:0)
您所描述的内容基本上是一个链式哈希表,您的问题可归结为如何调整该表的大小以使其具有空间效率。我认为你已经过度设计了你的解决方案。相反,只需在您的编程语言选择中使用标准的,现成的哈希表实现。它可能比你想出的任何东西都更加优化,并且可能会有更少的错误。
希望这有帮助!