数据结构实验之查找五:平方之哈希表
题目描述
给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,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
提示
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 sum=0;//统计数组元素个数;
for(i=0;i<n;i++)
{
scanf("%d",&num);
h=num%p;//取余数;
if(Hash[h]==-1)
{
Hash[h]=num;
a[sum++]=h;//记录余数下标;
}
else
{
g=h;
for(j=1;j<=sqrt(p);j++)
{
h=(g+j*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(i=0;i<sum;i++)
if(i!=sum-1)
printf("%d ",a[i]);
else
printf("%d\n",a[i]);
}
return 0;
}
数据结构实验之查找五:平方之哈希表相关推荐
- e - 数据结构实验之查找五:平方之哈希表_面试中常被问到的Hash表,你了解吗
#新人扶持计划# Hash表在面试中经常被问到,今天我们来了解下. Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组.链表以及二叉排序树等相比较有很明显的区别,它能够 ...
- e - 数据结构实验之查找五:平方之哈希表_leetcode算法之哈希表
今天该来盘一盘 哈希表 这类题目 分类别解析leetcode上的一些相关的例题路,代码采用C++与python实现. 哈希表 哈希表是一种很有用的数据结构, 其作用主要是以空间换时间, 在c++中主要 ...
- SDUT 3377 数据结构实验之查找五:平方之哈希表
数据结构实验之查找五:平方之哈希表 Time Limit: 400MS Memory Limit: 65536KB Submit Statistic Problem Description 给定的一组 ...
- E数据结构实验之查找五:平方之哈希表
Description 给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=± ...
- 数据结构实验之链表五:单链表的拆分-sdut
数据结构实验之链表五:单链表的拆分 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 输入N个 ...
- SDUT-3378_数据结构实验之查找六:顺序查找
数据结构实验之查找六:顺序查找 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 在一个给定的无序序列里,查找与给定关键字 ...
- 数据结构实验之查找七:线性之哈希表
数据结构实验之查找七:线性之哈希表 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 根据给定 ...
- SDUT 3379 数据结构实验之查找七:线性之哈希表
数据结构实验之查找七:线性之哈希表 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 根据给定的一系列整数关键字和素数p, ...
- 数据结构实验之二叉树五:层序遍历 // oj3344 队列+二叉树 // 先序 --层次
原题链接:oj3344 数据结构实验之二叉树五:层序遍历 Description 已知一个按先序输入的字符序列,如abd,eg,cf,(其中,表示空结点).请建立二叉树并求二叉树的层次遍历序列. In ...
最新文章
- Sql Server之旅——第十四站 深入的探讨锁机制
- 挂代理无法访问网页了怎么办_搜索引擎蜘蛛不能爬取网页的原因有哪些
- BIO和NIO的区别
- WPF实现聚光灯效果
- 别求面经了!小夕手把手教你如何斩下和选择NLP算法岗offer!(19.11.21更新)
- python socket.error: [Errno 10054] 远程主机强迫关闭了一个现有的连接。问题解决方案
- linux下grep文件内容搜索工具及基本正则表达式详解
- 简单描述HTML相对路径与绝对路径(转)
- 工程之星位置服务器,工程之星5.0中求坐标转换参数需要谨记这七大点!
- java网上订餐系统开题报告_网上订餐系统的设计与实现
- java8新特性有哪些
- ib网卡无法启动,需要修改为以太网模式
- 去文字,如何用PS快速去除图片上的文字
- google license key格式不对
- 系统自带恶意软件清理助手
- pwnable.kr_mistake
- Flutter--使用相机
- Go语言解决读取文件乱码
- 解决:TypeError: Descriptors cannot not be created directly
- 百度移动营销页常见问题汇总,99%的人不知道
热门文章
- 现代软件工程 第六章 【敏捷流程】练习与讨论
- python中下拉菜单大小_自动化测试——Selenium+Python之下拉菜单的定位
- 对没有标记为安全的activex控件进行初始化和脚本运行_RASP攻防 —— RASP安全应用与局限性浅析...
- ajax实现一个前台的进度条,前台ajax实现上传文件并且有进度条
- long mode 分页_在Spring Boot中使用Spring-data-jpa实现分页查询(转)
- mysql群集配置_CentOS7 - 建立一个MySQL集群
- 学习C/C++的简单方法
- python 数字类型和字符串类型的相互转换_python 数字类型和字符串类型的相互转换...
- git两个账号切换_多个git账号之间的切换
- H3C批量收集服务器信息,H3C设备服务器采集参数认证过程(包含redfish和restfull协议)...