当前位置: 首页 > news >正文

近三天发生的国际新闻杭州百度优化

近三天发生的国际新闻,杭州百度优化,品牌茶业都在哪些网站做宣传,有源码如何做网站【题目来源】https://www.acwing.com/problem/content/1566/【题目描述】 将一个由若干个不同正整数构成的整数序列插入到一个哈希表中,然后输出输入数字的位置。 哈希函数定义为 H(key)key%TSize,其中 TSize 是哈希表的最大大小。 利用只具有正增量的二…

【题目来源】
https://www.acwing.com/problem/content/1566/

【题目描述】
将一个由若干个不同正整数构成的整数序列插入到一个哈希表中,然后输出输入数字的位置。
哈希函数定义为 H(key)=key%TSize,其中 TSize 是哈希表的最大大小。
利用
只具有正增量的二次探测法来解决冲突。
注意,哈希表的大小最好是素数,如果用户给出的最大大小不是素数,则必须将表大小重新定义为大于用户给出的大小的最小素数。

【输入格式】
第一行包含两个整数 MSize 和 N,分别表示用户定义的表的大小以及输入数字的数量。
第二行包含 N 个不同的正整数,数字之间用空格隔开。

【输出格式】
在一行中,输出每个输入数字的相应位置(索引从 0 开始),数字之间用空格隔开,
行尾不得有多余空格
如果无法插入某个数字,则输出
-

【数据范围】
1≤MSize≤10^4,
1≤N≤MSize,
输入数字均在 [1,10^5] 范围内。

【输入样例】
4 4
10 6 4 15

【输出样例】
0 1 4 -

【算法分析】
本算法涉及多个细节,分述如下:
** 散列表(哈希表)
散列表,即哈希表,是根据给定关键字(Key)来计算出该关键字在表中存储地址的数据结构。也就是说,
散列表建立了关键字与存储地址之间的一种直接映射关系。将关键字映射到表中记录的地址,这加快了查找速度。
模拟实现散列表的代码,详见:https://blog.csdn.net/hnjzsyjyj/article/details/132179868

** 二次探测法
本题陈述表示采用“
只具有正增量的二次探测法”解决冲突。
所谓“只具有正增量的二次探测法”,即 
p=(H(key)+di*di) mod m 。其中:
m 为哈希表长度;
di 为增量序列 1^2,2^2,3^2,…,k^2(k≤m-1);
H(key) 为
哈希函数,常采用“除留余数法”构造,即 H(key)=key%p 除留余数法,方便编程实现。一般情况下,常选 p 为小于哈希表长度 m 的最大质数。
求小于给定数的最大素数代码,参见:
https://blog.csdn.net/hnjzsyjyj/article/details/127699346

** 大于给定数的最小素数
由于本题有段陈述“
哈希表的大小最好是素数,如果用户给出的最大大小不是素数,则必须将表大小重新定义为大于用户给出的大小的最小素数”,所以需要判断给定的数 MSize 是否为素数,若不是,则需要求大于给定的数 MSize 的最小素数。
求大于给定数的最小素数的代码详见:

https://blog.csdn.net/hnjzsyjyj/article/details/132182788

#include <bits/stdc++.h>
using namespace std;bool isPrime(int n) {if(n==1) return false;for(int i=2; i<=sqrt(n); i++) {if(n%i==0) return false;}return true;
}int getPrime(int n) { //Get least prime bigger than nfor(int i=n+1; ;i++) {if(isPrime(i)) {return i;break;}}
}int main(){int n;cin>>n;cout<<getPrime(n)<<endl;return 0;
}/*
in:100
out:101in:1000
out:1009
*/


【算法代码】

#include <bits/stdc++.h>
using namespace std;const int maxn=1e4+5;
int h[maxn];
int msize,n;bool isPrime(int x) {if(x==1) return false;for(int i=2; i<=sqrt(x); i++) {if(x%i==0) return false;}return true;
}int getPrime(int x) { //Get least prime bigger than nfor(int i=x+1; ; i++) {if(isPrime(i)) {return i;break;}}
}int find(int x) {int t=x%msize;for(int k=0; k<msize; k++) { //二次探测法int p=(t+k*k)%msize;if(!h[p]) return p;}return -1;
}int main() {scanf("%d %d",&msize,&n);if(!isPrime(msize)) msize=getPrime(msize);for(int i=0; i<n; i++) {int x;scanf("%d",&x);int t=find(x);if(t==-1) printf("-");else {h[t]=x;printf("%d",t);}if(i!=n-1) printf(" ");}return 0;
}/*
in:
4 4
10 6 4 15out:
0 1 4 -
*/




【参考文献】
https://blog.csdn.net/qq_43733499/article/details/120093683
https://www.acwing.com/solution/content/55930/






 

http://www.hkea.cn/news/855425/

相关文章:

  • 景点介绍网站模板重庆百度关键词推广
  • 做亚马逊网站费用吗曲靖新闻今日头条
  • bing 网站管理员2023今日新闻头条
  • 深圳市做网站前十强百度一下搜索网页
  • 做执法设备有哪些网站国家免费培训学校
  • 顺德乐从有做阿里巴巴的网站吗杭州网站设计
  • 做英文网站 用阿里服务器行吗b2b网站推广排名
  • 搭建网站做淘宝客网赌怎么推广拉客户
  • 网站建设前台与后台最新技术2021最新免费的推广引流软件
  • 做网站基本语言淘宝如何提升关键词排名
  • wordpress怎样分类目录添加标签seo文章范文
  • 订阅号可以做网站吗南宁seo外包服务商
  • 邢台哪儿做网站便宜宁波 seo排名公司
  • 深圳网站优化咨询网上广告怎么推广
  • 网站右击无效是怎么做的网络营销产品
  • 中宣部网站政治建设网站服务器是什么意思
  • 淮安网站定制徐州seo外包公司
  • 嘉兴类网站系统总部网站建设技术解决方案
  • 做网站的教科书外包网络推广公司推广网站
  • 模板名字 wordpress优化大师如何删掉多余的学生
  • 3d网站建设制作百度关键词优化手段
  • 新手做那些网站比较好东莞企业网站排名
  • 欧美风格网站360指数
  • 优秀网站建设公司电话下列哪些店铺适合交换友情链接
  • 58同城乌鲁木齐网站建设重庆网站到首页排名
  • wordpress知言主题山东服务好的seo公司
  • 旅游商务平台网站建设功能需求关键词排名查询官网
  • 做网站要搭建本地服务器么微商引流被加方法精准客源
  • 网站名字要备案吗友情链接怎么弄
  • 江苏网站开发外链网站大全