雜湊表的ASL計算

2021-08-20 11:11:48 字數 1155 閱讀 6068

題目: 已知關鍵字序列為,設雜湊表表長為15.雜湊函式是h(key)=key mod 13,處理衝突的方法為二次探測法hi= ( h(key) + di )mod 15 ( di=12,-12,22,-22,… ),請寫出構造雜湊表的詳細計算過程,填寫雜湊表,並計算在等概率的情況下查詢成功和失敗時的平均查詢長度asl。

雜湊位址01

2345

6789

1011

1213

14關鍵字

h(25)=25%13=12    在位址12處填入25; h(72)=72%13=7    在7處填入72;

h(38)=38%13=12,與h(25)衝突,此時使用處理衝突函式,即h(38)=(h(38)+1)%15=

13,無衝突。在13處填入38;

h(8)=8,在8處填入8;h(17)=4,與h(30)衝突,使用處理衝突函式,h(17)=(h(17)+1)%15=

5,無衝突。在5處填入17;

h(59)=7,與h(72)衝突,使用處理衝突函式,h(59)=(h(59)+1)%15=8,又與h(8)衝突,繼續使用處理衝突函式,

h(59)=(h(59)-1)%15=6,無衝突,在6處填入59.    雜湊表填寫如下:

雜湊位址   01

2345

6789

1011

1213

14關鍵字(key)

3017

5972825

38比較(計算)次數12

3111

2於是:asl(success)=(比較總次數)/(元素總數)  =(1+2+3+1+1+1+2)/ 7 = 11/7

要計算asl(failure) 則需要增加乙個東西,即各元素到它後面第乙個單元為空的位置的步數(距離)d。

如30到它後面第乙個單元為空的位置9的步數為6;

d(0)=null=1; d(1)=null=1; d(2)=null=1; d(3)=null=1; d(4)=30=6; d(5)=17=5; d(6)=59=4;

d(7)=72=3; d(8)=8=2; d(9)=null=1; d(10)=null=1; d(11)=null=1; d(12)=25=2;(從12到0走兩步)

再往後就沒有了。因此asl(failure)= (6+5+4+3+2+2+1*7)/13 = 29/13.

Hash表的平均查詢長度ASL計算方法

hash表的 查詢成功的asl 和 查詢不成功的asl asl指的是 平均查詢時間 關鍵字序列 7 8 30 11 18 9 14 雜湊函式 h key key x 3 mod 7 裝載因子 用來計算表長的 0.7處理衝突 線性探測再雜湊法 查詢成功的asl計算方法 因為現在的資料是7個,填充因子是...

Hash表的平均查詢長度ASL計算方法

asl指的是 平均查詢時間 關鍵字序列 7 8 30 11 18 9 14 雜湊函式 h key key x 3 mod 7 裝載因子 0.7處理衝突 線性探測再雜湊法 查詢成功的asl計算方法 因為現在的資料是7個,填充因子是0.7。所以陣列大小 7 0.7 10,即寫出來的雜湊表大小為10,下標...

雜湊表(雜湊表)的定義

chapter 雜湊表 雜湊表 1.雜湊表 雜湊表 的定義 2.雜湊表是怎麼進行查詢的?3.雜湊函式設計 直接定址法 4.雜湊函式設計 除留餘數法 5.雜湊衝突處理 開放定址法 6.雜湊衝突處理 鏈位址法 7.雜湊表的鏈位址法實現 8.linux核心中的hash與bucket 9.引入雜湊桶的概念來...