1. 程式人生 > >常用HASH演算法 程式碼 & 比較

常用HASH演算法 程式碼 & 比較

  • 其中資料1為100000個字母和數字組成的隨機串雜湊衝突個數。資料2為100000個有意義的英文句子雜湊衝突個數。資料3為資料1的雜湊值與1000003(大素數)求模後儲存到線性表中衝突的個數。資料4為資料1的雜湊值與10000019(更大素數)求模後儲存到線性表中衝突的個數。
  • 經過比較,得出以上平均得分。平均數為平方平均數。可以發現,BKDRHash無論是在實際效果還是編碼實現中,效果都是最突出的。APHash也是較為優秀的演算法。DJBHash,JSHash,RSHash與SDBMHash各有千秋。PJWHash與ELFHash效果最差,但得分相似,其演算法本質是相似的。
  • 在資訊修競賽中,要本著易於編碼除錯的原則,個人認為BKDRHash是最適合記憶和使用的。
  • 附:各種雜湊函式的C語言程式程式碼