【问题标题】:Computing the load factor in a hash table that coalesces duplicates?计算合并重复项的哈希表中的负载因子?
【发布时间】:2013-11-30 08:59:15
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java data-structures hash hashtable load-factor


    【解决方案1】:

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

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

    我会将负载因子计算为唯一项的数量除以存储桶的数量,因为这可以为您提供有关预期查找时间的最准确信息。

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-20
      • 1970-01-01
      • 2023-04-08
      • 2019-04-14
      • 2013-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多