雜湊函式: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為自變數,通過乙個函式 稱為雜湊函式或雜湊函式 計算出函式值,把這個值 雜湊位址或雜湊位址 解釋為一塊連續儲存空間 ...