給定一組查找關鍵字(19,14,23,1,65,20,84,27,55,11,10,79) 哈希函數爲:H(key)=key % 13, 哈希表長爲m=15,設每個記錄的查找概率相等。

給定一組查找關鍵字(19,14,23,1,65,20,84,27,55,11,10,79)

  1. 題目要求

哈希函數爲:H(key)=key % 13, 哈希表長爲m=15,設每個記錄的查找概率相等。

  1. 請畫出按照線性探測再散列處理衝突得到的哈希表(給出求解過程),並計算查找成功和查找失敗時的平均查找長度各是多少。

  2. 請畫出按照鏈地址法處理衝突得到的哈希表,並計算查找成功和查找失敗時的平均查找長度各是多少。

  1. 解題思路

2.1 線性探測

哈希表長爲m=15;
分別得到的結果進行線性探測散列排列:

在這裏插入圖片描述
衝突的關鍵字按照關鍵字的原始排序進行向後的推移
圖中的衝突的關鍵字“1”他的現地址爲1,但這個位置上已經被關鍵字“14”所佔領,遇到了衝突,探測下一個位置2,位置2上沒有關鍵字,放入即可;
在這裏插入圖片描述
關鍵字“84”在原始的關鍵字中排列在前,他現在的地址爲6,但這個位置已經被關鍵字“19”佔領,遇到了衝突,探測下一個地址7,但這個位置上也已經被關鍵字“20”佔領,繼續探測下一個地址8,位置8上沒有關鍵字,放入即可;
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述
循環執行,到了這一步所有的關鍵字都已經填入哈希表,散列表的構造已經完成
在這裏插入圖片描述
注:散列表的比較次數與關鍵字在哈希表中插入位置的次數有關,
查找成功的平均查找長度爲:
ASL=(1+1+2+1+3+4+1+1+2+1+1+2)/12
在這裏插入圖片描述
查找不成功的平均查找長度爲:
ASL=(10+9+8+7+6+5+4+3+2+1+2+3+4)/13

注意:
區別概念平均成功查找次數和平均不成功查找次數。
平均成功查找次數=每個關鍵詞比較次數之和÷關鍵詞的個數
平均不成功查找次數=每個位置不成功時的比較次數之和÷表長(所謂每個位置不成功時的比較次數就是在除餘位置內,每個位置到第一個爲空的比較次數。

2.2鏈式地址法:

在這裏插入圖片描述
成功時平均查找次數:(1X5+2X4+3X1+4X1)/12=5/3
失敗時平均查找次數:(4+2+2+1+2+1)/11 =1

注意:鏈地址法成功時查找次數的分母是哈希表元素的個數,分子爲縱向比較;
失敗時,分母爲哈希表的長度,分子爲橫向比較(幾個);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章