Data structures 用哈希表实现图形

Data structures 用哈希表实现图形,data-structures,hash,graph,hashtable,theory,Data Structures,Hash,Graph,Hashtable,Theory,我理解它背后的“理论”。是链表的某种类型或数组,它们在数组中的位置是执行“hashFuction(element)mod array.length”的结果,并且您使用该列表来管理冲突 我的问题是,数组的最佳长度是多少?我们正在使用最多20000个节点的graph。但我认为20000个元素的数组已经太低效了 我在考虑创建一个长度为X的数组,然后如果它达到了很多元素,我会做一些类似于将所有元素复制到2X数组的事情,但问题是它们的元素索引不同,我实际上可以“复制”所有数组,我需要为每个元素应用hash

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

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

我在考虑创建一个长度为X的数组,然后如果它达到了很多元素,我会做一些类似于将所有元素复制到2X数组的事情,但问题是它们的元素索引不同,我实际上可以“复制”所有数组,我需要为每个元素应用hash函数来找到它们的新位置,如果我说的是10000个元素的数组,速度会非常慢


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

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


希望这有帮助

据我所知,您正在实现使用哈希表来维护。。。?你能详细说明一下吗?你有论文的链接吗?有。是graph的一个实现,我们将节点存储在哈希表中。