處理雜湊表衝突的方法主要有除留餘數法,平方探測方法,以下兩題具體介紹兩種方法的使用方法
time limit: 400 ms memory limit: 65536 kib
submit
statistic
problem description
給定的一組無重複資料的正整數,根據給定的雜湊函式建立其對應hash表,雜湊函式是h(key)=key%p,p是雜湊表表長,p是素數,處理衝突的方法採用平方探測方法,增量di=±i^2,i=1,2,3,...,m-1
input
輸入包含多組測試資料,到 eof 結束。
每組資料的第1行給出兩個正整數n(n <= 500)和p(p >= 2n的最小素數),n是要插入到雜湊表的元素個數,p是雜湊表表長;第2行給出n個無重複元素的正整數,資料之間用空格間隔。
output
按輸入資料的順序輸出各數在雜湊表中的儲存位置 (hash表下標從0開始),資料之間以空格間隔,以平方探測方法處理衝突。
sample input
4 11sample output10 6 4 15
9 11
47 7 29 11 9 84 54 20 30
10 6 4 5hint3 7 8 0 9 6 10 2 1
#include #include #include int book[100010];//用於記錄這個位置為否有數
int a[10010];//記錄下標的值
int main()
else
else if(book[y-j*j] == -1)}}
}for(i = 0;i < top;i++)
}return 0;
}
time limit: 1000 ms memory limit: 65536 kib
submit
statistic
problem description
根據給定的一系列整數關鍵字和素數p,用除留餘數法定義hash函式h(key)=key%p,將關鍵字對映到長度為p的雜湊表中,用線性探測法解決衝突。重複關鍵字放在hash表中的同一位置。
input
連續輸入多組資料,每組輸入資料第一行為兩個正整數n(n <= 1500)和p(p >= n的最小素數),n是關鍵字總數,p是hash表長度,第2行給出n個正整數關鍵字,數字間以空格間隔。
output
輸出每個關鍵字在hash表中的位置,以空格間隔。注意最後乙個數字後面不要有空格。
sample input
5 5sample output21 21 21 21 21
4 524 15 61 88
4 524 39 61 15
5 524 39 61 15 39
1 1 1 1 1hint4 0 1 3
4 0 1 2
4 0 1 2 0
#include #include #include int book[100010];//用於記錄這個位置為否有數
int a[10010];//記錄下標的值
int main()
if(book[y] == -1)
else if(book[y] == x)
}for(i = 0;i < top;i++)
}return 0;
}
雜湊表應用
本文 雜湊表的應用 c 實現 問題描述 設計雜湊表實現 號碼查詢系統,實現下列功能 1 假定每個記錄有下列資料項 號碼 使用者名稱 位址。2 一是從資料檔案old.txt 自己現行建好 中讀入各項記錄,二是由系統隨機產生各記錄,並且把記錄儲存到new.txt檔案中以及顯示到螢幕上,記錄條數不要少於3...
雜湊表應用
以下 用開雜湊裡的拉鍊法解決雜湊衝突 include include using namespace std define hashsize 3 struct movietype struct node class hashtable hashtable hashtable hashtable ha...
雜湊表總結
雜湊表的概念 雜湊表 hash table 也叫雜湊表,是根據關鍵碼值 key value 而直接進行訪問的資料結構。它通過把關鍵碼值對映到雜湊表中的乙個位置來訪問記錄,以加快查詢的速度。這個對映函式就做雜湊函式,存放記錄的陣列叫做雜湊表。雜湊儲存的基本思路 以資料中每個元素的關鍵字k為自變數,通過...