簡體   English   中英

在合並重復項的哈希表中計算負載因子?

[英]Computing the load factor in a hash table that coalesces duplicates?

對於一個項目,我正在創建一個字符串哈希表。 它使用單獨的鏈接,並為表中的每個填充位置創建一個鏈接列表。 此鏈接列表包含一個節點,該節點存儲字符串及其頻率。 因此,當插入字符串時:

1.)如果它與另一個字符串的哈希匹配,並且當前字符串不在表中,則它將以該哈希值追加到列表中,並且頻率為1。

2.)如果表中已經有該字符串的副本,則該字符串的頻率將增加。

我將如何計算該表的負載系數? 它是哈希表中位置總數上的節點數(不包括列表)。 或者,它是頻率的總和除以哈希表中的位數嗎? -謝謝!

計算負載因數,以便如果表中的元素數量增加太多,表便可以調整自身大小。 高負載因子意味着查找可能開始花費很長時間,因為(平均)必須搜索更多元素。

在您的情況下,如果您通過跟蹤每個項目的頻率來存儲重復項,那么將重復項包括在加載因子中就沒有意義了。 畢竟,在每個項目的頻率為10 100的存儲桶中查找項目所需的時間與在每個項目的頻率為1的存儲桶中查找項目所花費的時間相同。

我會將負載因子計算為唯一項目數除以存儲桶數,因為這將為您提供有關預期查找時間的最准確信息。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM