4 整型关键字的散列映射
映射 关键字 整型 散列
2023-09-14 09:01:32 时间
4 整型关键字的散列映射
分数 25
作者 DS课程组
单位 浙江大学
给定一系列整型关键字和素数P,用除留余数法定义的散列函数H(Key)=Key将关键字映射到长度为P的散列表中。用线性探测法解决冲突。
输入格式:
输入第一行首先给出两个正整数N(≤1000)和P(≥N的最小素数),分别为待插入的关键字总数、以及散列表的长度。第二行给出N个整型关键字。数字间以空格分隔。
输出格式:
在一行内输出每个整型关键字在散列表中的位置。数字间以空格分隔,但行末尾不得有多余空格。
输入样例:
4 5
24 15 61 88
输出样例:
4 0 1 3
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
C++ (g++)
思路:
这个就是我们将每个数对P取余的结果分别对应在散列表中的位置,如果位置已经被占了的话,那么就用线性探测法解决冲突。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int N,P,x,y;
cin>>N>>P;
int a[P]={0};
for(int i=0;i<N;i++){
int k=1;
cin>>x;
y=x%P;
while(a[y]!=0&&a[y]!=x){
y=(x+k)%P;
k++;
}
a[y]=x;
if(i!=0) cout<<" ";
cout<<y;
}
return 0;
}
相关文章
- IBatisNet -- 保护你的配置文件及映射文件信息
- JPA实体关系映射:@ManyToMany多对多关系、@OneToMany@ManyToOne一对多多对一关系和@OneToOne的深度实例解析
- 【HIBERNATE框架开发之二】第一个HIBERNATE-ANNONATION项目(采用@ENTITY、@ID直接映射实体类)
- NeHe OpenGL教程 第三十七课:卡通映射
- Atitit. C# java 的api 目录封装结构映射总结
- 【项目实战】如何创建和使用MyBatis的映射文件
- mybatis自己主动生成mapper,dao,映射文件
- 【云原生之kubernetes】在kubernetes集群下的映射外部服务—Eendpoint
- ARP协议原理——地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址,ARP整个完整交互过程仅需要两个包,一问一答即可搞定
- Hibernate通过one-to-one元素的一对一映射