資料結構實驗之查詢五:平方之雜湊表
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 ...