1. 程式人生 > >線性探測法構造雜湊表(hash)

線性探測法構造雜湊表(hash)

以下是用線性探測法構造雜湊表的一個具體例子:

已知一組關鍵字為(39,49,54,38,44,28,68,12,06,77),用除餘法構造雜湊函式,用線性探查法解決衝突構造這組關鍵字的散列表。
  解答:為了減少衝突,通常令裝填因子α<l。這裡關鍵字個數n=10,不妨取m=13,此時α≈0.77,散列表為T[0..12],雜湊函式為:h(key)=key%13。
     由除餘法的雜湊函式計算出的上述關鍵字序列的雜湊地址為(0,10,2,12,5,2,3,12,6,12)。
     前5個關鍵字插入時,其相應的地址均為開放地址,故將它們直接插入T[0],T[10),T[2],T[12]和T[5]中。
     當插入第6個關鍵字15時,其雜湊地址2(即h(15)=15%13=2)已被關鍵字41(15和41互為同義詞)佔用。故探查h1=(2+1)%13=3,此地址開放,所以將15放入T[3]中。
     當插入第7個關鍵字68時,其雜湊地址3已被非同義詞15先佔用,故將其插入到T[4]中。
     當插入第8個關鍵字12時,雜湊地址12已被同義詞38佔用,故探查hl=(12+1)%13=0,而T[0]亦被26佔用,再探查h2=(12+2)%13=1,此地址開放,可將12插入其中。

     類似地,第9個關鍵字06直接插入T[6]中;而最後一個關鍵字51插人時,因探查的地址12,0,1,…,6均非空,故51插入T[7]中。

轉載自:http://blog.163.com/wf_shunqiziran/blog/static/1763072092012612114126231/