hash演算法衝突解決辦法?
作者:由 匿名使用者 發表于 體育時間:2015-10-14
網上有完美hash的。
一般就多hash幾次就可以了
面試麼?
1、往後跳,線性或者相乘或者再來個hash
2、搞個連結串列,參見Java的HashMap的實現
一般多弄幾個hash函式,hash1被佔了就看hash2,hash2被佔了就看hash3。
比如取餘hash:
hash1(x) = x%k;
hash2(2) = (-x)%k;
瞭解Java的話可以去看下原始碼;
ThreadLocalMap使用的是開放地址法(線性探測,遇到衝突,+1解決)
HashMap使用的連結串列法,遇到衝突,將新的物件放到連結串列前端