sdut 数据结构实验之查找五:平方之哈希表

在MDK5.37版本中添加Complier Version 5( 解决Missing Compiler Version 5 ) 本文章仅作为个人学习记录,方法也是从其他博主的博客中得到的,链接如下:二、Keil——Missing Compiler Version 5 和 core_cm3.c 问题解决 - YI颗白菜 - 博客园 (cnblogs.com) 问题描述 更新最新的keil版本(MDK5.37)后,在编译以前版本的工程文件时,发现出现了非常多的报错,在网上搜索之后发现原来时编译器版本不匹配的问题,即MDK5.37中使用的是Version 6版本的编译器,而缺少Version 5,对于以前编写的工 阅读详情
Problem Description

给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,3,...,m-1

Input

输入包含多组测试数据,到 EOF 结束。

每组数据的第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
Hint
Author

xam

代码:

#include <stdio.h>
#include <stdlib.h>
#define N 520
int hash[N];
int creat(int k,int p)
{
    int s;
    int i,j;
    s=k%p;
    i=1;
    j=0;
    if(hash[s]!=0)
    {
        while(hash[s]!=0)
        {
            if(j%2==0)
            {
                s=(k+i*i)%p;
                j++;
            }
            else
            {
                s=(k-i*i)%p;
                j++;
                i++;
            }
        }
        hash[s]=k;
        return s;

    }
    else
    {
        hash[s]=k;
        return s;

    }

    return 0;
}
int main()
{
    int n,p;
    int k;
    int a[502];
    int i,j;
    while(scanf("%d %d",&n,&p)!=EOF)
    {

        for(i=0; i<N; i++)
            hash[i]=0;
        j=0;
        for(i=0; i<n; i++)
        {
            scanf("%d",&k);
            a[j++]=creat(k,p);
        }
        for(i=0; i<j-1; i++)
            printf("%d ",a[i]);
        printf("%d\n",a[j-1]);

    }
    return 0;
}


网工运维掌握OpenClaw这7大必备技能,自动化运维效率直接起飞 OpenClaw的核心就是它的技能系统。通过官方技能市场(clawhub.ai),你只需一条命令就能安装扩展,让AI代理变成你的“运维副手”。今天我就结合网工运维的真实痛点,精选7项最热门、最实用的OpenClaw技能(基于ClawHub下载量和实际测试),手把手教你安装、使用和进阶玩法。这些技能不是玩具,而是能直接提升运维效率10倍以上的生产力工具!安装后,你的OpenClaw代理就能自动处理Zabbix告警、总结syslog日志、更新Obsidian网络拓扑笔记、甚至通过n8n触发自动修复脚本。 阅读详情

相关推荐

Navcat最新版的激活和安装教程(全网最靠谱,最快捷的方式)

现在最新版本navcat已经出到了16.3了,并且新版navcat也支持连接redis和图标等更多样化的功能,但是比较头疼的一件事就是,只能试用14天。那么接下来小编教大家如何用最简单的方式使用最新版navcat16.

weixin_50737119的博客 2万+

哈希---平方探测法

哈希表也称为散列表,它是通过关键码值而进行直接访问的数据结构。即它通过把一个关键码映射到表中的一个位置来访问记录,以加快查找速度。当然了在做关键码映射的时候,难免会把不同的关键码映射到相同的位置,这时冲突就产生了。使用平方探测法(Quadratic Probing)可以解决哈希中的冲突问题它的基本思想是:设hash函数为h(key) = d,并且假定其存储结构为循环数组,则当冲突发生时,它接下来需...

策马奔腾向前冲 1万+

Ubuntu20.04下Pycharm的快速安装与配置指南

本文提供了一份详细的Ubuntu 20.04系统下PyCharm社区版的安装与配置指南。文章重点介绍了通过手动下载.tar.gz压缩包进行安装的灵活方法,并涵盖了系统准备、依赖安装、首次运行、创建快捷方式以及解释器配置等关键步骤,帮助Python开发者快速搭建高效、可控的本地开发环境。

weixin_28831341的博客 379

平方探测法hash

数据结构实验之查找五:平方之哈希表 Time Limit: 400MS Memory Limit: 65536KB Problem Description 给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,3,...,m-1 In

OPM的博客 5062

生存网络与mlr3proba

通过结合生存网络和mlr3proba,可以使用生存网络模型来预测个体在给定时间点发生事件的概率,并使用mlr3proba提供的工具进行模型的训练、评估和选择最佳模型。iii)基本的机器学习(ML)方法,如重新排序和调整。在本文中,我们将只讨论前五种,因为它们在文献中得到了更好的建立,并且它们具有相同的接口,这简化了调优,我们将在下面看到。我们不会为模型指定自定义架构,而是使用默认架构,如果你熟悉PyTorch,那么你可以选择创建自己的架构,如果你愿意的话,通过将其传递给模型中的custom_net参数。

weixin_46587777的博客 1363

SSE(Server-Sent Events)完整使用示例

本篇使用Node.js 作为服务端,在浏览器客户端演示SSE的完整实例和演示。实现了一个基于 Server-Sent Events (SSE) 的实时数据推送功能。

oscar999的专栏 750

数据结构和算法——哈希查找冲突处理方法(开放地址法-线性探测、平方探测、双散列探测、再散列,分离链接法)

数据结构和算法——哈希查找冲突处理方法(开放地址法-线性探测、平方探测、双散列探测、再散列,分离链接法) 在开放地址散列表中,删除操作要很小心。通常只能“懒惰删除”,即需要增加一个“删除标记(Deleted)”,而并不是真正删除它。以便查找时不会“断链”。其空间可以在下次插入时重用。

li13437542099的博客 1万+

不会精准对比前人研究写“讨论与对比”段落?教你用ChatGPT辅助,直接让这部分提升一个档次(附提示词指令)

一个我觉得很有效的做法是,选取几篇具有代表性的文献,从研究方法、变量设置或结论方面进行对照分析,并指出本研究在哪些方面进行了补充或修正。除了简单说“提出了新的方法”或“首次应用某模型”,更需要说明这一做法在结果解读、研究设计或理论拓展上的具体意义,最好能够与现有研究进行比较,形成明确的差异化描述。段落应包含:研究结果解释、与前人研究对比、研究贡献、局限性反思,并在结尾提出未来研究的可能方向。讨论与对比部分一般位于文献综述、研究讨论或结果分析的后面,目的是对比已有研究,突出自己研究的价值与新意。

智能AI让学术科研更容易 171

哈希表:线性探查法和平方探查法

己知哈希表地址区间为0~10,给定关键字序列(20,41,37,26,8,12,18, 63,30)。 哈希函数为H(k)=k%11,采用平方探测法处理冲突,将以上关键字依次存储到哈希表中。 平均查找长度ASL计算 成功:ASL = 所有关键字查找成功的比较次数之和/关键字个数 失败:ASL = 所有关键字查找失败的比较次数之和/散列函数取值个数(本题即13) (查找失败:按位置查找,H[i]为空结束查找,例:关键字位置为8时,H[8]不空,继续,H[9]不空,继续,H[10]空,确定查找失.

weixin_52963585的博客 4291

SAP Business Technology Platform 支持的技术栈

SAP Business Technology Platform(简称 BTP)是 SAP 提供的一个综合技术平台,旨在帮助企业实现业务转型和创新。BTP 融合了数据库管理、应用开发、集成、分析和智能技术,为企业提供从基础架构到端到端应用的全面服务。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1567

SAP-ABAP:字符与数值类型转换详细指南

SAP-ABAP:字符与数值类型转换详细指南

baidu_35680696的博客 1475

C++语言实现哈希表中的线性探测法和平方探测法

平方探测法的缺点是它可能会出现“探测不到”的情况,即当哈希表中的空槽不足时,键值对可能无法插入到哈希表中,导致查找操作失败。线性探测法是一种简单的哈希冲突解决方法,当发生哈希冲突时,线性探测法会在哈希表中从冲突的位置开始,依次往后查找下一个空槽,并将键值对插入到该位置上。这样,当查找一个键时,如果该键在哈希表中存在,就可以在不停止搜索的情况下遍历哈希表,直到找到键值对或者确定该键值对不存在为止。如果哈希表的负载因子较高,即哈希表中的键值对比较多,平方探测法可能是一种更好的选择。

m0_61862494的博客 2450

LIN协议V2.2A版介绍

IN 协议规范2.2A 版(2010 年 12 月发布)是面向低成本汽车网络的标准,核心采用单主多从架构,支持最高20kbit/s速率,通过单总线实现通信;定义了完整的协议栈(含协议层、传输层、物理层等),规定了帧结构(含 Break 字段、Sync 字节、保护标识符 PID、数据字段、校验和)、5 类帧类型(无条件帧、事件触发帧等)及调度表机制以保障确定性传输;

qflook的博客 319

SDUT 3377 数据结构实验之查找五:平方之哈希表

数据结构实验之查找五:平方之哈希表 Time Limit:400 msMemory Limit:65536 KiB SubmitStatistic Problem Description 给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,...

iQXQZX 274

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

数据结构实验之查找五:平方之哈希表 SDUT 3377

Problem Description 给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,3,…,m-1 Input 输入包含多组测试数据,到 EOF 结束。 每组数据的第1行给出两个正整数N(N <= 500)和P(P >= 2N的最小素数...

weixin_44041997的博客 160

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SDUT E - 数据结构实验之查找五:平方之哈希表

Description 给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,3,…,m-1 Input 输入包含多组测试数据,到 EOF 结束。 每组数据的第1行给出两个正整数N(N <= 500)和P(P >= 2N的最小素数),N是要插入到哈希表的元素个数,P是哈希表表长;第2行给出N个无重复元素的正整数,数据之间用空格间隔。 Output 按输入数

sdut_you的博客 278

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

SDUT-3377 数据结构实验之查找五:平方之哈希表

数据结构实验之查找五:平方之哈希表Time Limit: 400MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,3,....

Leslie's Blog 492

sdut oj3377 数据结构实验之查找五:平方之哈希表

题目链接:点击打开链接 数据结构实验之查找五:平方之哈希表 Time Limit: 400MS Memory limit: 65536K 题目描述 给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,3,...,

Annfan123的博客 681

SDUT(3377)数据结构实验之查找五:平方之哈希表

数据结构实验之查找五:平方之哈希表 Time Limit: 400ms   Memory limit: 65536K   题目描述 给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,3,...,m-1

小菜鸟的博客 378

SDUT_3377_数据结构实验之查找五:平方之哈希表

Problem Description 给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,3,…,m-1 Input 输入包含多组测试数据,到 EOF 结束。 每组数据的第1行给出两个正整数N(N <= 500)和P(P >= 2N的最小

chrishuimin的博客 279

SDUT3377数据结构实验之查找五:平方之哈希表

数据结构实验之查找五:平方之哈希表 Time Limit: 400MS Memory limit: 65536K 题目描述 给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,3,...,m-1 输入 输入一组测试数据,数据的第1行给出两个正整数...

提拉米苏的博客 378

SDUT OJ 3377数据结构实验之查找五:平方之哈希表

数据结构实验之查找五:平方之哈希表 Time Limit: 400MS Memory limit: 65536K 题目描述 给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^2,i=1,2,3,...,m-1 输入

公子世无双的博客 523

SDUT 3377 数据结构实验之查找五:平方之哈希表

点击打开题目链接 #include using namespace std; int Hash[1010]; int n, m; int main() { while(~scanf("%d %d", &n, &m)) { queueQ; memset(Hash, 0, sizeof(Hash)); for(int i = 1;

清风笑 690

SDUT OJ 数据结构实验之查找五:平方之哈希表

数据结构实验之查找五:平方之哈希表 Time Limit: 400 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description 给定的一组无重复数据的正整数,根据给定的哈希函数建立其对应hash表,哈希函数是H(Key)=Key%P,P是哈希表表长,P是素数,处理冲突的方法采用平方探测方法,增量di=±i^...

CHEN_ZAN_YU的博客 206

数据结构实验之查找五:平方之哈希表 (SDUT 3377)

Hash表的平方探测思路:如果当前这个没存放数值,就放进去,如果当前这个地方Hash [ i ] 已经有数值了,就以平方的间隔左右寻找没有存放数的空白 Hash [ i ]。  #include &lt;bits/stdc++.h&gt; using namespace std; const int inf = 0x3f3f3f3f; int a[2000]; int Hash[2000...

Mercury_Lc的博客 848

数据结构实验之查找五:平方之哈希表 sdut oj 3377

查找&&哈希

rain_snowing的博客 407
上一篇: sdut 二分练习
下一篇: sdut 数据结构实验:哈希表
Endless21
博客等级 码龄10年 1粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值