1

我理解它背后的“理论”。是某种类型或数组的链表,它们在数组中的位置是执行“hashFuction(element) mod array.length”的结果,并且您使用该列表来管理冲突。

我的问题是,数组的最佳长度实际上是多少?我们正在使用最多 20,000 个节点的图。但我认为 20,000 个元素的数组已经太低效了。

我正在考虑创建一个长度为 X 的数组,然后如果它达到这么多元素,则执行诸如将所有元素复制到 2X 的数组之类的操作,但问题是它们不会对元素具有相同的索引,而我实际上可以“复制“所有数组,我需要为每个元素应用哈希函数来找到它们的新位置,如果我谈论的是一个 10,000 个元素的数组,这将非常非常慢。

对不起我的语法错误,英语不是我的母语。

4

1 回答 1

0

您所描述的本质上是一个链式哈希表,您的问题归结为如何调整该表的大小以节省空间。我认为您正在过度设计您的解决方案。相反,只需在您选择的编程语言中使用标准的、现成的哈希表实现。它可能比您想出的任何东西都更加优化,并且可能会有更少的错误。

希望这可以帮助!

于 2014-06-01T20:00:08.443 回答