1. 程式人生 > >解決hash碰撞問題

解決hash碰撞問題

線性探測法:

連結串列法:

騰訊的一道筆試題

已知一個線性表(38,25,74,63,52,48),採用的雜湊函式為H(Key)=Key%7,將元素雜湊到表長為7的雜湊表中儲存。若採用線性探測的開放定址法解決衝突,則在該散列表上進行等概率成功查詢的平均查詢長度為 ____ ;

若利用拉鍊法解決衝突,則在該散列表上進行等概率成功查詢的平均查詢長度為 ____

線性探測法:

38 25 74 63 52 48 3     4   4   0   3    6 38  插入位置3      ,查詢1次。 25  插入位置4,     查詢1次。 74 位置4碰撞,探測位置5,插入位置5,查詢2次。 63 無   插入位置0, 查詢1次。 52  位置3 碰撞,探測位置4,探測位置5,探測位置6,插入位置6,查詢4次。 48 位置6碰撞,探測位置0,探測位置1,插入位置1,查詢3次。 共1+1+2+1+4+3 次 平均2次

連結串列法:

將74連結到25後面   52 連結到38後面 共1+1+2+1+2+1次