雜湊之線性探測法

2021-07-27 09:41:51 字數 1167 閱讀 4870

資料結構實驗之查詢七:線性之雜湊表

time limit: 1000ms memory limit: 65536kb

problem description

根據給定的一系列整數關鍵字和素數p,用除留餘數法定義hash函式h(key)=key%p,將關鍵字對映到長度為p的雜湊表中,用線性探測法解決衝突。重複關鍵字放在hash表中的同一位置。

input

連續輸入多組資料,每組輸入資料第一行為兩個正整數n(n <= 1000)和p(p >= n的最小素數),n是關鍵字總數,p是hash表長度,第2行給出n個正整數關鍵字,數字間以空格間隔。

output

輸出每個關鍵字在hash表中的位置,以空格間隔。注意最後乙個數字後面不要有空格。

example input

5 5

21 21 21 21 21

4 5

24 15 61 88

4 5

24 39 61 15

5 5

24 39 61 15 39

example output

1 1 1 1 1

4 0 1 3

4 0 1 2

4 0 1 2 0

**:

#include

#include

#include

int ans[1015];//存元素在雜湊表中的位置

int a[1015];

int main()

if(a[k] == -1)//代表位置是空的

else

if(a[k] == num)//代表數一樣

}for(i = 0; i < top; i++)

}return

0;}

雜湊 線性探測法

time limit 1 secs,memory limit 256 mb 使用線性探測 法 linear probin g 可以解決雜湊中的衝突問題,其基本思想是 設雜湊函式為 h key d,並且假定雜湊的儲存結構是迴圈陣列 則當衝突發生時 繼續探測 d 1,d 2 直到衝突得到解決 例如,現有...

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

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

雜湊(2)線性探測法和雙重雜湊法

接上篇 雜湊的簡要描述和鏈位址法 解決雜湊衝突的方法 如果我們能夠 將要存入表中元素的數目,而且我們有足夠的記憶體空間可以容納帶有空閒空間的所有關鍵字,那麼使用鏈位址法是不值得的。我們依靠空的儲存空間解決衝突 設計表長m大於元素數目n,開放位址法,最簡單的開放位址法是線性探測法 該符號表的實現將元素...