雜湊表應用總結

2021-08-25 16:52:39 字數 1788 閱讀 7717

處理雜湊表衝突的方法主要有除留餘數法,平方探測方法,以下兩題具體介紹兩種方法的使用方法

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 11

10 6 4 15

9 11

47 7 29 11 9 84 54 20 30

sample output

10 6 4 5

3 7 8 0 9 6 10 2 1

hint

#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 5

21 21 21 21 21

4 524 15 61 88

4 524 39 61 15

5 524 39 61 15 39

sample output

1 1 1 1 1

4 0 1 3

4 0 1 2

4 0 1 2 0

hint

#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為自變數,通過...