雜湊演算法 查詢失敗

2021-09-28 06:33:32 字數 1318 閱讀 3014

雜湊函式:h(key) = key % 11;

現有資料:1,13,12,34,38,33,27,22

要求:使用線性探測法處理衝突

step1:先將所有的資料裝入雜湊表彙總

1%11 = 1,沒有衝突

13%11 = 2,沒有衝突

12%11 = 1,下標1的位置上放置了資料1,此時衝突了,使用 線性探測法處理衝突,下標1上已經有資料了,所以往後查,此時下標2上也有資料了,再往下查到下標3,此時下標3上沒有資料,將12放在下標3的位置中

34%11 = 1,衝突了,使用線性探測法,計算出位址為4

38%11 = 5,沒有衝突

33 % 11 = 0,沒有衝突01

2345

6789

1033113

1234

3827

7對於查詢成功,只需要分別計算單個資料查詢成功的次數,因為只有8個資料,所以需要計算8次:

1因為沒有衝突,只需要查詢1次即可

13 沒有衝突,只需要查詢1次

12 衝突了,原本應該放在下標1的位置,現在放在了下標3的位置,需要查詢下標1,2,3,共需要3次

34 衝突,原本放在下標1的位置,現在放在下標4的位置,需查詢 4 次

38 沒有衝突,查詢1次

33 沒有衝突,查詢1次

27 衝突,原本應該放在下標5的位置,現在放在下標6的位置,需查詢2次

22 衝突,原本應該放在下標0的位置,現在放在下標7的位置,需查詢8次

asl = (1+1+3+4+1+1+2+8)/8 = 21/8 = 2.625

查詢失敗:

對於查詢失敗,概率都是1/11,因此,0-10每個下標都需要計算,共計算11次,並且查詢失敗的時候,需要一直查詢到第乙個為的位址才結束

key = 0,查詢失敗需要一直查詢到 下標為 8 ,因為下標為8的位址為空,共需要9次

key = 1,查詢失敗需要8次

key = 2,查詢失敗需要7次

key = 3 ,查詢失敗需要6次

key = 4,查詢失敗需要5次

key = 5,查詢失敗需要4次

key = 6,查詢失敗需要3次

key = 7,失敗需要2次

key = 8,失敗需要1次

key = 9,失敗需要1次

key = 10,失敗需要1次

asl = (9+8+7+6+5+4+3+2+1+1+1)/11 = 47/11

查詢演算法 雜湊演算法,雜湊表查詢

那麼問題來了,如果集合s中同時存在值k 16和值k 27,我們該如何將兩個位址一樣的值存入雜湊表呢?常用的雜湊函式 處理衝突的方法 2.連位址法 雜湊表涉及的是一種對映關係,可以根據某個值查詢到關鍵字的位址,這樣的做法省去了比較的時間,優化了演算法。雜湊表是把值 關鍵字 存到跟它具有 唯一 對映的格...

演算法 查詢 雜湊表查詢

查詢除了線性表的查詢 順序 二分 分塊 樹上查詢 bst b 樹 還有一種雜湊查詢。相比於前兩種查詢,雜湊表的查詢效率驚人的高o 1 它採用的直接定址技術,基本上就是實現了精準打擊,達到一擊而中的效果。所謂的直接定址技術,說白了,就是儲存記錄時,通過雜湊函式計算出乙個雜湊位址 讀取記錄時,通過同樣的...

查詢演算法(II)雜湊查詢 雜湊表 Hash

雜湊 hash 同順序 鏈結和索引一樣,是儲存集合的又一種方法。不同的是,雜湊表 雜湊表 在元素的儲存位置和它的關鍵字之間建立了乙個對應關係。雜湊儲存的基本思想是 以每個元素的關鍵字k為自變數,通過乙個函式 稱為雜湊函式或雜湊函式 計算出函式值,把這個值 雜湊位址或雜湊位址 解釋為一塊連續儲存空間 ...