hash解決衝突之 平方探測

2021-08-22 19:30:01 字數 779 閱讀 3931

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

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

和線性探測解決衝突沒有什麼本質的區別,唯一區別就是平方探測有向前和向後探測,線性只有向後探測;

#includeusing namespace std;

int a[112345],b[112345],c[112345];

int main()

else if(a[(c[i]-j*j)%p]==0)}}

}}

for(int i=0;i}

}

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 ...