【问题标题】:Implementing a graph with hash table使用哈希表实现图
【发布时间】:2012-10-30 22:59:33
【问题描述】:

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

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

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

抱歉我的语法错误,英语不是我的母语。

【问题讨论】:

  • 据我了解,您正在实现一些使用哈希表来维护的东西......?你能详细说明一下吗?你有论文的链接吗?
  • 是的,here。是图的实现,我们将节点存储在哈希表中。

标签: data-structures hash graph hashtable theory


【解决方案1】:

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

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2020-12-30
    • 1970-01-01
    • 2016-03-25
    • 2011-10-14
    • 2011-09-15
    • 2020-08-30
    • 2014-02-13
    • 2019-05-11
    相关资源
    最近更新 更多