整型关键字的散列映射

作者:@kuaiquxie
作者的github:https://github.com/bitebita
本文为作者原创,如需转载,请注明出处:https://www.cnblogs.com/dzwj/p/15659515.html


整型关键字的散列映射

 

给定一系列整型关键字和素数P,用除留余数法定义的散列函数H(Key)=Key将关键字映射到长度为P的散列表中。用线性探测法解决冲突。

输入格式:

输入第一行首先给出两个正整数N(1000)和P(N的最小素数),分别为待插入的关键字总数、以及散列表的长度。第二行给出N个整型关键字。数字间以空格分隔。

输出格式:

在一行内输出每个整型关键字在散列表中的位置。数字间以空格分隔,但行末尾不得有多余空格。

输入样例:

4 5
24 15 61 88
 
结尾无空行

输出样例:

4 0 1 3
 
结尾无空行
 
代码如下:
复制代码
#include <stdio.h>
int a[1009],b[1009];
int main(){
    int n,p;
    scanf("%d %d",&n,&p);
    int x,i,j;
    for(i=0;i<n;i++){
        scanf("%d",&x);
        int H=x%p;
        int t=0;
        for(j=0;j<p;j++){
            if(a[j]==x){
                printf(" %d",j);
                t=1;
                break;
            }
        }
        if(t==0){
            while(b[H]){
                H=(H+1)%p;
            }
            b[H]=1;
            a[H]=x;
            if(i==0){
                printf("%d",H);
            }
            else{
                printf(" %d",H);
            }
        }
    }
    return 0;
}
复制代码

 

posted @   kuaiquxie  阅读(69)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
点击右上角即可分享
微信分享提示