SDUT 3377 数据结构实验之查找五:平方之哈希表
数据结构实验之查找五:平方之哈希表
Problem Description
给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,3,...,m-1
Input
输入一组测试数据,数据的第1行给出两个正整数N(N <= 500)和P(P >= 2N的最小素数),N是要插入到哈希表的元素个数,P是哈希表表长;第2行给出N个无重复元素的正整数,数据之间用空格间隔。
Output
按输入数据的顺序输出各数在哈希表中的存储位置 (hash表下标从0开始),数据之间以空格间隔,以平方探测方法处理冲突。
Example Input
4 11 10 6 4 15 9 11 47 7 29 11 9 84 54 20 30
Example Output
10 6 4 5 3 7 8 0 9 6 10 2 1 DQE:哈希表平方探测法,注意Di序列各个元素通过i计算得到的关系,每次计算记得对p取余即可~
1 #include <iostream> 2 #include <cstdio> 3 using namespace std; 4 int n,p; 5 6 int insert(int *f,int k) 7 { 8 int h=k%p; 9 int i=1,j=h; 10 while(f[j]!=0&&f[j]!=k) 11 { 12 int t=(i+1)/2; 13 j=(h+t*t*(i%2==0?-1:1))%p; 14 i++; 15 } 16 f[j]=k; 17 return j; 18 } 19 20 int main() 21 { 22 while(scanf("%d %d",&n,&p)!=EOF) 23 { 24 int hash[1011]={0}; 25 int i,k; 26 for(i=0;i<n;i++) 27 { 28 scanf("%d",&k); 29 printf("%d%c",insert(hash,k),i==n-1?'\n':' '); 30 } 31 } 32 return 0; 33 } 34 35 /*************************************************** 36 User name: *** 37 Result: Accepted 38 Take time: 0ms 39 Take Memory: 152KB 40 Submit time: 2016-12-03 13:06:06 41 ****************************************************/
转载于:https://www.cnblogs.com/Leroscox/p/6128567.html
SDUT 3377 数据结构实验之查找五:平方之哈希表相关推荐
- e - 数据结构实验之查找五:平方之哈希表_面试中常被问到的Hash表,你了解吗
#新人扶持计划# Hash表在面试中经常被问到,今天我们来了解下. Hash表也称散列表,也有直接译作哈希表,Hash表是一种特殊的数据结构,它同数组.链表以及二叉排序树等相比较有很明显的区别,它能够 ...
- e - 数据结构实验之查找五:平方之哈希表_leetcode算法之哈希表
今天该来盘一盘 哈希表 这类题目 分类别解析leetcode上的一些相关的例题路,代码采用C++与python实现. 哈希表 哈希表是一种很有用的数据结构, 其作用主要是以空间换时间, 在c++中主要 ...
- SDUT 3379 数据结构实验之查找七:线性之哈希表
数据结构实验之查找七:线性之哈希表 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 根据给定的一系列整数关键字和素数p, ...
- SDUT OJ 数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
数据结构实验之图论五:从起始点到目标点的最短步数(BFS) Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss P ...
- E数据结构实验之查找五:平方之哈希表
Description 给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=± ...
- 数据结构实验之查找五:平方之哈希表
题目描述 给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1 ...
- 数据结构实验之链表五:单链表的拆分-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 根据给定 ...
最新文章
- STARTUP报错:ORA-00205: error in identifying control file, check alert log for more info
- 机器学习(Part I)机器学习的种类
- 一篇文章带你搞定Python返回函数
- 超级详细的教程 一步步教你Vue项目中使用axios如何进行参数拼接
- 单选按钮步骤流程向导 js_创建令人愉快的按钮的6个步骤
- PowerBI,自定义编辑同一页面中不同图表之间的交互,使页面交互更灵活
- Tips--Anaconda安装TensorFlow报错ImportError: DLL load failed
- LightOJ1171 Knights in Chessboard (II)(二分图最大点独立集)
- 物资申请php,危废企业申请经营许可证需满足的条件及申请程序
- android 自定义加载圈,Android自定义加载控件实现数据加载动画
- 机器人、威胁情报、对抗机器学习以及深度学习是如何影响安全领域的
- 怎么查看计算机办公软件版本的,怎样查看电脑用的什么办公软件
- phpQuery占用过多内存的解决方法
- 关于ONION/Wncry勒索病毒
- Agarose bound-WFA,WFL;琼脂糖结合紫藤凝集素(WFA,WFL)
- 【Codeforces Round #548(Div. 2)】Edgy Trees(数学+bfs求连通块)
- 最长公共子序列(LCS)C++版递归算法实现
- 通讯录的实现(静态版本,动态版本,文件版本)(后附完整源代码)
- 一本通1652牡牛和牝牛
- shell -- expr命令
热门文章
- 机器学习笔试面试超详细总结(四)
- TensorFlow(八)激活函数
- 数据集准备及数据预处理_1.准备数据集
- 许家印帮贾跃亭广州拿地造车,这是要翻身的节奏吗?
- MATLAB快速拟合二组数据
- 基于matlab的车牌识别系统程序,基于matlab的车牌识别系统的设计(附程序).doc
- vscode 调试_如何使用VSCode调试JS?
- springboot几种注入_Spring Boot中使用JdbcTemplate访问数据库
- 大连开发区取暖费能微信支付吗_下半年教资报考人数增加,那到底能不能异地报考呢?...
- 【蔡勒公式 】根据给定的年月日求出对应星期几