1. 程式人生 > >平方探測法處理雜湊函式衝突

平方探測法處理雜湊函式衝突

  平方探測法是一種較好的處理衝突的方法,可以避免出現“堆積”問題,它的缺點是不能探測到散列表上的所有單元,但至少能探測到一半單元。下面通過一個例子來理解:

  設Hash函式為 H( key ) = key mod 7,雜湊表的地址空間為0,1,...,10,開始時雜湊表為空,用平方探測法解決衝突,畫出依次插入鍵值9,14,10,30,56,28後的雜湊表和比較次數。

  1.插入鍵值9,9 mod 7 = 2 ,無衝突,插入,比較一次;

  

  2.插入鍵值14,14 mod 7 = 0,無衝突,插入,比較一次;

  

  3.插入鍵值10,10 mod 7 = 3,無衝突,插入,比較一次;

  

  4.插入鍵值30,30 mod 7 = 2,衝突,2+12=3,有衝突,2-12=1,無衝突插入,比較3次;

   

  5.插入鍵值56,56 mod 7 = 7,無衝突,插入,比較一次;

   

  6.插入鍵值28,28 mod 7 = 0,衝突,0+12=1,有衝突,0-12=-1,此時插入到地址10,如果等於-2就插入到地址9,比較次數3次。此時插入全部完成。