Hash表大小使用質數的原因


素數可以有效的減少hash沖突
設Hash表大小為size,並且size是一個合數,即size = a * n。當關鍵字key = b * n時,他們有公因子n。
有Hash公式:

hashcode = key%size = key - (key / size) * size = key - (b/a) * size

因為a和size都是不變的,所以hashcode只有b種可能,這樣顯然會增加沖突的概率。所以當一個關鍵字集合里的所有關鍵字都與Hash表大小有公因數n時,那么hashcode只有key/n種可能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM