对于一个项目,我正在创建一个字符串哈希表。它使用单独的链接,并且对于表中的每个填充位置,都会创建一个链接列表。此链接列表包含一个节点,该节点存储字符串及其频率。所以,当插入一个字符串时:
1。)如果它匹配另一个字符串的哈希值,并且当前字符串不在表中,则它将以此哈希值附加到列表中,并且频率为1.
2。)如果表中已有该字符串的副本,则该字符串的频率将递增。
如何计算此表的负载系数?它是哈希表中位置总数的节点数(这不包括列表)。或者,它是频率之和除以哈希表中的位置数量吗? -Thanks!
答案 0 :(得分:0)
计算加载因子,以便如果表中元素的数量变得太大,表可以自行调整大小。高负载因素意味着查找可能会花费很长时间,因为(平均而言)必须搜索更多元素。
在您的情况下,如果您通过跟踪每个项目的频率来存储重复项,则将重复项包含在加载因子中是没有意义的。毕竟,对于桶中的项目进行查找需要相同的时间,其中每个项目的频率为10 100 ,因为它查找桶中的项目,其中每个项目的频率为1
我会将加载因子计算为唯一项目的数量除以桶数,因为这可以为您提供有关预期查找时间的最准确信息。
希望这有帮助!