当前位置: 首页 > 知识库问答 >
问题:

在合并重复项的哈希表中计算负载因子?

马浩淼
2023-03-14

对于一个项目,我正在创建一个字符串哈希表。它使用单独的链接,对于表中的每个填充位置,都创建一个链表。该链表包含一个节点,该节点存储字符串及其频率。因此,当插入字符串时:

1.)如果它与另一个字符串的哈希值匹配,并且当前字符串不在表中,它将以这个哈希值追加到列表中,并且将具有1的频率。

2.)如果表中已有该字符串的副本,则该字符串的出现频率将增加。

如何计算此表的负载因子?是哈希表中位置总数的节点数(这不包括列表)。或者,它会是频率的总和除以散列表中的位置数吗?-谢谢!

共有1个答案

梁华清
2023-03-14

计算加载因子,以便在表中元素数量增长过大时调整表自身的大小。高负载系数意味着查找可能要花费很长的时间,因为(平均而言)需要搜索更多的元素。

在您的例子中,如果您通过跟踪每个项目的频率来存储重复项,那么将重复项包含在负载因子中是没有意义的。毕竟,查找每个项目频率为10100的桶中的项目所花费的时间与查找每个项目频率为1的桶中的项目所花费的时间相同。

我将把负载因子计算为唯一项的数量除以桶的数量,因为这给出了关于查找的预期时间的最准确的信息。

希望这有帮助!

 类似资料:
  • 问题内容: 如何找到哈希表的当前负载率和容量? 问题答案: 您不应该能够获得负载系数和容量。它们是hashmap类的实现细节。但是,您可以使用反射。尽量避免使用它,但这通常是一个坏主意。

  • 问题内容: 当大小超过maxthreshold值时,如何在哈希表或哈希表中进行重新哈希处理? 是否所有对都已复制到新的存储桶阵列中? 编辑: 重新哈希后,同一存储桶(位于链接列表中)中的元素会发生什么情况?我的意思是说,他们在重新哈希处理后会留在同一个桶中吗? 问题答案: 问题中的最大阈值称为负载系数。 建议负载系数约为0.75。负载因子定义为(m / n),其中n是哈希表的总大小,m是在需要增加

  • 我想向用户展示他们的客户端工具也可能生成的散列,因此我一直在比较在线散列工具。我的问题是关于它们的散列形式,因为奇怪的是,它们是不同的。 在快速搜索之后,我用5进行了测试: http://www.convertstring.com/hash/sha256 http://www.freeformatter.com/sha256-generator.html#ad-output http://onli

  • 我刚刚讨论了散列码的概念,遇到了一行:

  • 常见问题,Int Raku,如何合并,合并两个哈希? 说: 如何获取

  • 所以,我有一个带有数组的哈希,就像这样: 我想将它们合并到一个哈希数组中,组合相应的元素。 结果应该是这样的: 知道如何有效地做到这一点吗? 请注意,真实世界的使用场景可能包含数量可变的散列键。