hash解決衝突之 平方探測

2021-07-16 20:16:23 字數 840 閱讀 1440

資料結構實驗之查詢五:平方之雜湊表

time limit: 400ms memory limit: 65536k 有疑問?點這裡^_^

題目描述

給定的一組無重複資料的正整數,根據給定的雜湊函式建立其對應hash表,雜湊函式是h(key)=key%p,p是雜湊表表長,p是素數,處理衝突的方法採用平方探測方法,增量di=±i^2,i=1,2,3,...,m-1

輸入輸入一組測試資料,資料的第1行給出兩個正整數n(n <= 500)和p(p >= 2n的最小素數),n是要插入到雜湊表的元素個數,p是雜湊表表長;第2行給出n個無重複元素的正整數,資料之間用空格間隔。

輸出按輸入資料的順序輸出各數在雜湊表中的儲存位置 (hash表下標從0開始),資料之間以空格間隔,以平方探測方法處理衝突。

示例輸入

4 11

10 6 4 15

9 11

47 7 29 11 9 84 54 20 30

示例輸出

10 6 4 5

3 7 8 0 9 6 10 2 1

hash思想:將元素值與存的位置通過hash聯絡,用什麼hash函式存元素就用該函式找元素

# include # include int main()

for(i=0;ielse

pos = (a[i]-j*j)%p;//向前探測

if(hash[pos] == -1)}}

}for(i=0;ielse

pos = (a[i]-j*j)%p;

if(hash[pos] == a[i])}}

}}

return 0;

}

hash解決衝突之 平方探測

資料結構實驗之查詢五 平方之雜湊表 time limit 400ms memory limit 65536k 有疑問?點這裡 題目描述 給定的一組無重複資料的正整數,根據給定的雜湊函式建立其對應hash表,雜湊函式是h key key p,p是雜湊表表長,p是素數,處理衝突的方法採用平方探測方法,增...

線性探測解決hash衝突

我們來簡單的例子說明什麼是線性探測 假設我們有乙個陣列 假設我們用當前公式計算當前資料在陣列中的下標位置 int i num 11 假設我們有一組資料需要放置在陣列中 那麼他們對應的下標位置應該分別為 資料 1 下標 1 11 1 資料 2 下標 2 11 2 資料 3 下標 3 11 3 資料 1...

平方探測法hash

time limit 400ms memory limit 65536kb problem description 給定的一組無重複資料的正整數,根據給定的雜湊函式建立其對應hash表,雜湊函式是h key key p,p是雜湊表表長,p是素數,處理衝突的方法採用平方探測方法,增量di i 2,i ...