jquery 开发网站,3.常见的网站建设工具有,室内装修公司哪家好,西安网站排名优化题目描述 给定的一组无重复数据的正整数#xff0c;根据给定的哈希函数建立其对应hash表#xff0c;哈希函数是H(Key)Key%P#xff0c;P是哈希表表长#xff0c;P是素数#xff0c;处理冲突的方法采用平方探测方法#xff0c;增量dii^2,i1,2,3,...,m-1 输入 输入一组测试… 题目描述 给定的一组无重复数据的正整数根据给定的哈希函数建立其对应hash表哈希函数是H(Key)Key%PP是哈希表表长P是素数处理冲突的方法采用平方探测方法增量di±i^2,i1,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提示 #include bits/stdc.h using namespace std; int main() { int a[500];//存储下标 int n,p,i,j,num,h; int Hash[500];//哈希表 while(~scanf(%d%d,n,p)) { memset(Hash,-1,sizeof(Hash));//初始化哈希表 int sum0;//统计数组元素个数 for(i0;in;i) { scanf(%d,num); hnum%p;//取余数 if(Hash[h]-1) { Hash[h]num; a[sum]h;//记录余数下标 } else { gh; for(j1;jsqrt(p);j) { h(gj*j)%p;//向表的后面找 if(Hash[h]-1) { Hash[h]num; a[sum]h; break; } h(g-j*j)%p;//向表的前面找 if(Hash[h]-1) { Hash[h]num; a[sum]h; break; } } } } for(i0;isum;i) if(i!sum-1) printf(%d ,a[i]); else printf(%d\n,a[i]); } return 0; }