基於線性探測法的雜湊表 並行陣列

2021-10-03 23:32:09 字數 749 閱讀 9974

為了解決雜湊表中的碰撞衝突問題,除了基於拉鍊法的方式,我們還可以採用基於線性探測法並行陣列的方式解決。

基本思想:當碰撞發生時(當乙個鍵的雜湊值已經被另乙個鍵所占用),我們就檢查雜湊表中的下乙個位置(將索引值+1),若為空,則將此雜湊值賦給發生碰撞的鍵。若不為空,則不斷將雜湊表中的位置+1,直到出現雜湊值為空的位置為止。------------犧牲陣列記憶體的方式解決碰撞衝突的問題,若衝突則放在下乙個位置處.

//雜湊函式

private int hash(key key)

private void resize(int cap)

keys = t.keys;

values = t.values;

m = t.m;

}public value get(key key)

return null;

}public void put(key key,value value)

}keys[i] = key;

values[i] = value;

n++;}}

雜湊表 開放位址法之線性探測

雜湊表 優點 速度快 插入和查詢 缺點 基於陣列,不能有序的遍歷 鍵值對儲存方式,通過鍵來訪問值 hashmap.put key value 線性探測屬於開放位址法 線性探測插入演示 陣列最初狀態 在這組資料中要插入83 先對要插入資料雜湊化,雜湊化後的資料就是陣列下標,這裡雜湊化後的資料是23 然...

C語言 生成雜湊表 線性探測法

直接定址法 數字分析法 平方取中法 除留餘數法 隨機數法 開放定址法 線性探測法,二次探測法,隨機探測法 再雜湊函式法 鏈位址法 拉鍊法,雜湊桶 公共溢位區法 宣告定義 include include include define field 1 define null 32768 typedef ...

雜湊表的基本操作(一) 線性探測法解決雜湊衝突

雜湊概念 在之前學習過的順序搜尋和二叉樹搜尋中,元素儲存位置和元素各關鍵碼之間沒有對應關係,因此在查詢乙個元素時,必須要經過關鍵碼的多次比較。搜尋的效率取決於搜尋過程中元素的比較次數。我們希望可以不經過任何比較,一次直接從表中得到想要的元素,這樣一來,搜尋效率就有了質的提高。如果構造一種儲存結構,通...