本題的任務很簡單:將給定的無重複正整數序列插入乙個雜湊表,輸出每個輸入的數字在表中的位置。所用的雜湊函式是 h(key)=key%tsize,其中 tsize 是雜湊表的表長。要求用平方探測法(只增不減,即h(key)+i2 )解決衝突。
注意雜湊表的表長最好是個素數。如果輸入給定的表長不是素數,你必須將表長重新定義為大於給定表長的最小素數。
輸入格式:
首先第一行給出兩個正整數 msize(≤104 )和 n(≤msize),分別對應輸入的表長和輸入數字的個數。隨後第二行給出 n 個不重複的正整數,數字間以空格分隔。
輸出格式:
在一行中按照輸入的順序給出每個數字在雜湊表中的位置(下標從 0 開始)。如果某個數字無法插入,就在其位置上輸出-
。輸出間以 1 個空格分隔,行首尾不得有多餘空格。
輸入樣例:
4410
6415
輸出樣例:
014
-
#include
using
namespace std;
int n, m, x, flag =0;
int v[
20005];
intisprime
(int x)
void
insert
(int x)
cout <<
"-";
}int
main()
return0;
}
7 11 整型關鍵字的雜湊對映 (25 分)
給定一系列整型關鍵字和素數p,用除留餘數法定義的雜湊函式將關鍵字對映到長度為p的雜湊表中。用線性探測法解決衝突。輸入格式 輸入第一行首先給出兩個正整數n 1000 和p n的最小素數 分別為待插入的關鍵字總數 以及雜湊表的長度。第二行給出n個整型關鍵字。數字間以空格分隔。輸出格式 在一行內輸出每個整...
7 42 整型關鍵字的雜湊對映 25分
給定一系列整型關鍵字和素數p,用除留餘數法定義的雜湊函式將關鍵字對映到長度為p的雜湊表中。用線性探測法解決衝突。輸入格式 輸入第一行首先給出兩個正整數n 1000 和p n的最小素數 分別為待插入的關鍵字總數 以及雜湊表的長度。第二行給出n個整型關鍵字。數字間以空格分隔。輸出格式 在一行內輸出每個整...
7 42 整型關鍵字的雜湊對映 25 分
給定一系列整型關鍵字和素數p,用除留餘數法定義的雜湊函式h key key p將關鍵字對映到長度為p的雜湊表中。用線性探測法解決衝突。輸入格式 輸入第一行首先給出兩個正整數n 1000 和p n的最小素數 分別為待插入的關鍵字總數 以及雜湊表的長度。第二行給出n個整型關鍵字。數字間以空格分隔。輸出格...