資料結構 分離鏈結法和平方探測法相關例題

2021-09-25 14:41:48 字數 1746 閱讀 4045

現有資料序列和雜湊函式h(x)=x mode 10。

(1)請畫出用分離鏈結法表示的雜湊表(5分)

(2)請畫出用平方探測法f(i)=i*i表示的雜湊表(5分)

(3)請計算前兩題中雜湊表的裝載因子和查詢成功的平均查詢長度asl(5分)

(1)

分離鏈結法01

437123

1323

6173

4434456

7894199

9679

1989

將現有的資料序列依次代入到雜湊函式h(x)=x mode 10中,得到相應的結果

(2)平方探測法

empty table

after 4371

after 1323

after 6173

after 4199

after 4344

after9679

after1989

09679

9679

14371

4371

4371

4371

4371

4371

437123

1323

1323

1323

1323

1323

1323

46173

6173

6173

6173

6173

54344

4344

434467

81989

94199

4199

4199

4199

首先,對第一位的4371代入到雜湊函式中進行計算,得到結果為1,放入到1位置中

第二位1323,得到結果為3,放到3位置中

第三位6173,得到結果為3,與1323發生了衝突,那麼i=0不符合,將i=1代入,i*i=1,得到結果為4,放到4位置中

第四位4199,得到結果為9,放到9位置中

第五位4344,得到結果為4,與6173發生了衝突,那麼i=0不符合,將i=1代入,i*1=1,得到結果為5,放到5位置中

第六位9679,得到結果為9,與4199發生了衝突,那麼i=0不符合,將i

=1代入,i*i=1,得到結果為0,放到0位置中

第七位1989,得到結果為9,與4199發生了衝突,那麼i=0不符合,將i=1代入,i*i=1,得到結果為0,與9679發生了衝突,說明i=0不符合,將i=2代入,i*i=4,得到結果為3,與1323發生了衝突,說明i=2不符合,將i=3代入,i*i=9,得到結果為8,放到8位置中

(3)asl

裝載因子很顯然是0.7,7/10=0.7

首先,我們來看分離鏈結法中的asl應該怎麼計算,查詢成功的asl說明就是要能夠找到的次數,那麼很顯然,在分離鏈結法中有4個資料只需要查詢一次,分別是4371、1323、4344、4199,有2個資料要查詢兩次,分別是6173、9679,還有1個資料需要查詢三次,是1989

得到查詢成功的asl=(4*1+2*2+1*3)/7=11/7

其次,是平方探測法中的asl

由平方探測法可得,4371、1323、4199只需要查詢一次,6173、4344、9679需要查詢兩次,1989需要查詢3次

最後得到查詢成功的asl=(1*3+2*3+3*1)/7=12/7

資料結構與演算法之雜湊 分離鏈結法 《七》

hash,一般翻譯做 雜湊 也有直接音譯為 雜湊 的,就是把任意長度的輸入 又叫做預對映,pre image 通過雜湊演算法,變換成固定長度的輸出,該輸出就是雜湊值。這種轉換是一種壓縮對映,也就是,雜湊值的空間通常遠小於輸入的空間,不同的輸入可能會雜湊成相同的輸出,所以不可能從雜湊值來唯一的確定輸入...

雜湊表資料結構之一 分離鏈結法

查詢樹adt允許對一組元素進行各種操作,而今次總結的雜湊表 hash table adt,不過它只支援二叉查詢樹所允許的一部分操作,雜湊表的實現常常叫做雜湊 hashing 以常數平均時間執行插入 刪除和查詢的技術。理想的雜湊表資料結構只不過是乙個包含有關鍵字的具有固定大小的陣列,把錶的大小叫做ta...

資料結構 雜湊表的線性探測演算法

構造雜湊表常用的方法是 除留餘數法 取關鍵值被某個不大於雜湊表長m的數p除后的所得的餘數為雜湊位址。hashkey key p。直接定址法 取關鍵字的某個線性函式為雜湊位址hashkey key 或 hashkey a key ba b為常數。我在這裡主要使用一下除留餘數法hash key key ...