⑴ 常見的哈希演算法有哪些
1.linear hash 線性
2.quadratic hash 每次以1,4,9,16這樣的幅度向下找
3.double hash 用兩個函數一起決定HASH的index
⑵ 字元串hash函數是解決什麼問題的
Hash,一般翻譯做「散列」,也有直接音譯為「哈希」的,就是把任意長度的輸入(又叫做預映射, pre-image),通過散列演算法,變換成固定長度的輸出,該輸出就是散列值。這種轉換是一種壓縮映射,也就是,散列值的空間通常遠小於輸入的空間,不同的輸入可能會散列成相同的輸出,所以不可能從散列值來唯一的確定輸入值。簡單的說就是一種將任意長度的消息壓縮到某一固定長度的消息摘要的函數。
⑶ hash演算法的數學原理是什麼,如何保證盡可能少的碰撞
基於概率分析
在使用哈希函數時選擇「正確」的哈希函數可以很大程度減少碰撞
比如字元串哈希可以用BKDRHash
當然也可以針對輸入數據特點設計哈希演算法
這個就要分情況了