TA貢獻1865條經驗 獲得超7個贊
Knuth的乘法方法:
hash(i)=i*2654435761 mod 2^32
通常,您應該選擇一個乘以您的散列大小(2^32在示例中)的乘數,并且沒有與之相關的公因子。這樣,哈希函數統一覆蓋了所有哈希空間。
2^32
編輯:這個哈希函數的最大缺點是它保留了可分性,所以如果你的整數都可以被2或4整除(這并不罕見),它們的哈希也是如此。這是哈希表中的一個問題 - 您最終只能使用1/2或1/4的桶。
TA貢獻1864條經驗 獲得超2個贊
取決于數據的分布方式。對于一個簡單的計數器,最簡單的功能
f(i) = i
會很好(我懷疑是最佳的,但我無法證明)。
大廠算法面試真題解析32講
¥ 68.00
數據結構與算法(前端版)
¥ 58.00
用技術人的眼光看世界 • 程序員技術指北
¥ 99.00
舉報
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號