」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 負載因子和重新哈希

負載因子和重新哈希

發佈於2024-08-02
瀏覽:117

Load Factor and Rehashing

負載因子衡量哈希表的填充程度。如果超出載入因子,請增加雜湊表大小並將條目重新載入到新的更大的雜湊表中。這稱為重新哈希。負載因子 l (lambda) 衡量雜湊表的填充程度。是
個數的比例 元素與雜湊表的大小之比,即 l = n / N,其中 n 表示元素的數量,N 表示雜湊表中的位置的數量。

請注意,如果雜湊表為空,則 l 為零。對於開放尋址方案,l 介於 01 之間;如果雜湊表已滿,則 l 為 1。對於單獨的連結方案,l 可以是任何值。

隨著 l 的增加,碰撞的機率也會增加。研究表明,對於開放尋址方案,您應該將負載因子保持在 0.5 之下;對於單獨的連結方案,您應該將負載因子保持在 0.9 之下。

將負載因子保持在一定閾值以下對於哈希的性能非常重要。在Java API中java.util.HashMap類別的實作中,使用了閾值0.75。每當負載因子超過閾值時,您就需要增加哈希表的大小,並將映射中的所有條目重新哈希到一個新的更大的哈希表中。請注意,您需要更改雜湊函數,因為哈希表大小已更改。為了減少重新散列的可能性,因為它的成本很高,您應該至少將散列表大小增加一倍。即使定期重新散列,散列也是映射的有效實作。

版本聲明 本文轉載於:https://dev.to/paulike/load-factor-and-rehashing-28mm?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3