1. 程式人生 > >鏈地址法和開放定址法,求等概率下查詢成功時的平均查詢長度

鏈地址法和開放定址法,求等概率下查詢成功時的平均查詢長度

問題描述:
演算法與資料結構的一個題目,用鏈地址法和開放定址法,求等概率情況下查詢成功時的平均查詢長度
已知一組關鍵字(13,20,85,52,8),雜湊函式為:H(key)=key MOD 6
1)用開放定址法處理衝突,選用線性探測再雜湊處理衝突,即Hi=(H(k)+di) MOD m,m=6。並求等概率情況下查詢成功時的平均查詢長度。
2)用鏈地址法處理衝突,並求等概率情況下查詢成功時的平均查詢長度。

分析:
(1)開放定址法
方法:當衝突發生時,形成一個探查序列;沿此序列逐個地址探查,直到找到一個空位置(開放的地址),將發生衝突的記錄放到該地址中,即
Hi=(H(key)+di) % m,i=1,2,……k(km-1)
其中:H(key)——雜湊函式
m——雜湊表表長
di——增量序列
分類
線性探測再雜湊:di=1,2,3,……m-1
二次探測再雜湊:di=1²,-1²,2²,-2²,3²,……±k²(km/2)
偽隨機探測再雜湊:di=偽隨機數序列

(2)) 鏈地址法
方法:將所有關鍵字為同義詞的記錄儲存在一個單鏈表中,並用一維陣列存放頭指標。

結果:
1)用開放定址法處理衝突,選用線性探測再雜湊處理衝突,即Hi=(H(k)+di) MOD m,m=6。並求等概率情況下查詢成功時的平均查詢長度。
查詢長度為: 1、 1、 3、 1、 4 等概率情況下查詢成功時的平均查詢長度為 10/5=2.0
2)用鏈地址法處理衝突,並求等概率情況下查詢成功時的平均查詢長度。
查詢長度為: 1、 1、 2、 1、 2 等概率情況下查詢成功時的平均查詢長度為 7/5=1.4