關於雜湊表的題目

2021-09-25 17:57:03 字數 1380 閱讀 6231

在牛客網上刷到的乙個關於雜湊表的題目,因為當時做的時候看和我之前做的題目一樣,沒有思考直接做選了結果,最後對答案的時候卻發現答案錯了。仔細看了一下,發現題目與之前做的題目基本大致相當,卻是不一樣的知識點,在我之前做此題之前我還從未注意過,是乙個新的知識點。

(單選題)

設雜湊表長為14,雜湊函式為h(key)=key%11。表中現有資料15、38、61和84,其餘位置為空,

如果用二次探測再雜湊處理衝突,則49的位置是()

a.8 b.3

c.5 d.9

答案:d

分析:

二次探測再雜湊:di=1^2, -1^2, 2^2, -22,…,k2, -k^2 ( k<=m/2 )

開放定址法:hi=(h(key)+di)mod m,其中h(key)為雜湊函式;m為雜湊表長;di為增量序列

經計算得:

h(15)=4,h(38)=5

h(61)=6,h(84)=7

h(49) = 49%11 = 5與h(38)衝突,根據:hi=(h(key)+di)mod m,以及二次探測雜湊求得:

di = 1, h1(h(49)+1) mod 14 = 6 ;因h(61)=6,所以衝突

di = -1, h2(h(49)-1) mod 14 = 4 ;因h(15)=4,所以衝突

di = 4, h3(h(49)+4) mod 14 = 9;不衝突

(單選題)

設雜湊表長為14,雜湊函式為h(key)=key%11。表中僅有h(15)=4,h(38)=5,h(61)=6,h(84)=7四個結點,其餘位置為空,

如果用線性探測法處理衝突,則49的結點位址是()

a.8 b.3

c.5 d.9

答案:a

分析:

di=1,2,3,…m-1,稱為線性探測再雜湊;

開放定址法:hi=(h(key)+di)mod m,其中h(key)為雜湊函式;m為雜湊表長;di為增量序列

過程:

h(49) = 49%11 = 5,發生衝突;

h1(h(49)+1) mod 14 = 6,衝突;

h2(h(49)+2) mod 14 = 7,衝突;

h2(h(49)+3) mod 14 = 8,不衝突;

雜湊表(雜湊表)的定義

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

雜湊表(雜湊表)的實現

雜湊函式直接用key size的形式,size為雜湊表的大小。衝突處理採用平方探測法,為保證可以探測到整個雜湊表空間,雜湊表大小設定為4k 3形式的素數。當雜湊表中的元素過多時會造成效能下降,這時應該倍增雜湊表的大小,重新計算原來雜湊表中每個元素在新的雜湊表中的位置。雜湊表的實現 hashtable...

雜湊表(雜湊表)的定義

到了有序表 已排序的表 查詢時,我們可以利用a i 與key的 或 來折半查詢,直到相等時查詢成功返回i。反正我們的目標就是要找到那個 i 值,是不是還有其它好點的方法呢?乙個小故事 試想這樣的場景,你很想學太極拳,聽說學校有個叫張三丰的人打得特別好,於是你到學校學生處找人。學生處的工作人員可能會拿...