常用的哈希函數包括直接余數法、乘法和整數法以及平方法。在直接余數法中,質數的使用較多,在乘法和舍入法中,它們主要用於實數,而在平方法中,中間取平方後,每壹位都包含更多的信息。
哈希在管理數據結構中的應用
在使用hash來管理的數據結構中,我們更關註速度,但不太關註碰撞,只要確保hash的均勻分布即可。比如hashmap,hash value(key)的目的是加快key-value對的搜索速度,key的作用是將元素適當地放入每個bucket中,所以對防碰撞的要求沒有那麽高。
換句話說,散列產生的鍵只需要確保值大致均勻地放在不同的桶中。但整個算法的set性能直接關系到哈希值生成的速度,所以此時哈希值生成的速度就顯得尤為重要。