数据结构实验之查找七:线性之哈希表

题目描述

根据给定的一系列整数关键字和素数p,用除留余数法定义hash函数H(Key)=Key%p,将关键字映射到长度为p的哈希表中,用线性探测法解决冲突。重复关键字放在hash表中的同一位置。

输入

连续输入多组数据,每组输入数据第一行为两个正整数N(N <= 1000)和p(p >= N的最小素数),N是关键字总数,p是hash表长度,第2行给出N个正整数关键字,数字间以空格间隔。

输出

输出每个关键字在hash表中的位置,以空格间隔。注意最后一个数字后面不要有空格。

示例输入

5 5
21 21 21 21 21
4 5
24 15 61 88
4 5
24 39 61 15
5 5
24 39 61 15 39

示例输出

1 1 1 1 1
4 0 1 3
4 0 1 2
4 0 1 2 0

提示



#include<bits/stdc++.h>
using namespace std;
int main()
{
    int i,j,a[2001],Hash[2000],n,p,h;
    while(~scanf("%d%d",&n,&p))
    {
        int num;
        int sum=0;//记录数组元素个数;
        memset(Hash,-1,sizeof(Hash));//初始化;
        for(i=0;i<n;i++)
        {
            scanf("%d",&num);
            h=num%p;
            if(Hash[h]==-1)
            {
                Hash[h]=num;
                a[sum++]=h;
            }
            else
            {
                int flag=0;//标记是否有相同的关键字;
                for(j=0;j<p;j++)
                {
                   if(Hash[j]==num)//重复关键字放在hash表中的同一位置
                   {
                       a[sum++]=j;
                       flag=1;
                       break;
                   }
                }
                if(!flag)
                {
                    while(Hash[h%p]!=-1)//线性探测法解决冲突
                        h++;//向后移动;
                    a[sum++]=h%p;
                    Hash[h%p]=num;
                }
            }
        }
        for(i=0;i<sum-1;i++)
        printf("%d ",a[i]);
        printf("%d\n",a[sum-1]);
    }
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/509418.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring配置讲解

Bean元素 Bean元素进阶 scope属性&#xff1a; 1.singleton(默认值):单例对象.被标识为单例的对象在spring容器中只会存在一个实例 2.prototype:多例原型.被标识为多例的对象,每次再获得才会创建.每次创建都是新的对象.整合struts2时,ActionBean必须配置为多例的. 3.request…

找女朋友

题目描述 山东理工大学有很多学生&#xff0c;当然也有很多美女&#xff0c;机械实验班的学委&#xff08;外号&#xff1a;大王八&#xff09;很想找个女朋友&#xff0c;但他想找个身高和自己相配的女生坐女朋友&#xff0c;现有理工大N个美女的身高数据&#xff0c;但由于N的…

情商低的七种表现,你占了几个

你身边有没有这样的人&#xff1a;大家刚刚还聊的热火朝天&#xff0c;却在他进门的瞬间&#xff0c;整场“冷冻结冰”&#xff0c;大家都各忙各的&#xff0c;避免与他交流。我们称这样的人为“冷场帝”。那么&#xff0c;“冷场帝”是如何养成的&#xff1f;这样的人通常情商…

spring属性注入

注入方式 set方法注入 构造函数注入 p名称空间注入 spel注入(#表示理解为引用) 练习代码&#xff1a; <!-- 第二天 set注入 index:索引 ref:引用对象 type:参数类型--><bean name"person" class"com.spring.bean.Person"><constructor-a…

数据结构实验之排序一:一趟快排

题目描述 给定N个长整型范围内的整数&#xff0c;要求输出以给定数据中第一个数为枢轴进行一趟快速排序之后的结果。 输入 连续输入多组数据&#xff0c;每组输入数据第一行给出正整数N(N < 10^5)&#xff0c;随后给出N个长整型范围内的整数&#xff0c;数字间以空格分隔。…

你所不知道的C和C++运行库

转自&#xff1a;http://blog.csdn.net/ithzhang/article/details/20160009 你所不知道的C和C运行库    周五晚&#xff0c;小雨&#xff0c;少见的未加班。无聊&#xff0c;遂准备写一篇博客&#xff0c;介绍一下C和C运行库&#xff0c;只因发现工作几年的人对此一知半解的…

使用注解配置spring如@Compnent、@Service、@Consroller、@scope和@value的使用

步骤 1.导包42spring-aop如图&#xff1a;为学习到该阶段需要用到的包(里面的aoptest是spring和junit整合测试的时候用到的)2.为主配置文件引入新的命名空间(约束)3.开启使用注解代理配置文件<?xml version"1.0" encoding"UTF-8"?> <beans xmln…

关于面向对象的理解

转自&#xff1a;http://blog.csdn.net/ithzhang/article/details/52983530 上次插件进程化分享时&#xff0c;感觉大家对面向对象思想的理解还停留在很基础的层次。面向对象思想确实很难理解&#xff0c;因此学习面向对象思想并非一日之功。我看过很多面向对象的书&#xff0c…

spring与junit整合测试

1.导包42aoptest 这里不愿意截图了&#xff0c;上面讲注解配置时候有截图2.配置注解 //帮我们创建容器 RunWith(SpringJUnit4ClassRunner.class) //指定创建容器时使用哪个配置文件 ContextConfiguration("classpath:applicationContext.xml") public class Demo {//…

linux后台开发具备能力集锦

Linux后台开发应该具备技能 一、linux和os: 1、命令&#xff1a;netstat tcpdump ipcs ipcrm 这四个命令的熟练掌握程度基本上能体现实际开发和调试程序的经验 2、cpu 内存 硬盘 等等与系统性能调试相关的命令必须熟练掌握&#xff0c;设置修改权限 tcp网络状态查看 各进程状态…

java实现深度优先搜索 (DFS) 算法

度优先搜索&#xff08;Depth First Search&#xff0c;DFS&#xff09;算法是一种用于遍历或搜索图或树的算法。这种算法从一个节点开始&#xff0c;沿着一条路径尽可能深地搜索&#xff0c;直到遇到不能继续前进的节点时返回上一个节点&#xff0c;然后继续搜索其他路径。具体…

数据结构实验之排序四:寻找大富翁

题目描述 2015胡润全球财富榜调查显示&#xff0c;个人资产在1000万以上的高净值人群达到200万人&#xff0c;假设给出N个人的个人资产值&#xff0c;请你快速找出排前M位的大富翁。 输入 首先输入两个正整数N( N ≤ 10^6)和M(M ≤ 10)&#xff0c;其中N为总人数&#xff0c;M为…

系统调用和库函数的区别

首先&#xff0c;要说一下两者的概念&#xff1a;系统调用 &#xff1a;是操作系统为用户态运行的进程和硬件设备(如CPU、磁盘、打印机等)进行交互提供的一组接口&#xff0c;即就是设置在应用程序和硬件设备之间的一个接口层。可以说是操作系统留给用户程序的一个接口。再来说…

数据结构实验之排序五:归并求逆序数

题目描述 对于数列a1,a2,a3…中的任意两个数ai,aj (i < j)&#xff0c;如果ai > aj,那么我们就说这两个数构成了一个逆序对&#xff1b;在一个数列中逆序对的总数称之为逆序数&#xff0c;如数列 1 6 3 7 2 4 9中&#xff0c;(6,4)是一个逆序对&#xff0c;同样还有(3,2)…

gSoap客户端调用WebService完成后注意内存释放顺序

gSoap客户端调用WebService完成后注意内存释放顺序 [cpp] view plaincopy //Soap资源清理 soap_destroy(soap_sp.get()); //清理反序列化的类实例 soap_end(soap_sp.get()); //清理反序列化的数据 &#xff08;除类实例&#xff09; 和临时数据清理…

spring面向AOP之动态代理

动态代理中有两个重要的接口&#xff0c;一个是InvocationHandle&#xff0c;另一个是Proxy。 分别来说明这两个接口的作用吧&#xff01; InvocationHandle接口‘ java.lang.reflect.InvocationHandler InvocationHandler 是代理实例的调用处理程序 实现的接口。每个代理实…

数据结构实验之排序六:希尔排序

题目描述 我们已经学习了各种排序方法&#xff0c;知道在不同的情况下要选择不同的排序算法&#xff0c;以期达到最好的排序效率&#xff1b;对于待排序数据来说&#xff0c;若数据基本有序且记录较少时&#xff0c; 直接插入排序的效率是非常好的&#xff0c;希尔排序就是针对…

spring整合JDBC

文章目录spring提供了很多模板整合Dao技术spring中提供了一个可以操作数据库的对象.对象封装了jdbc技术.如何用Spring中的jdbc模板对数据库操作&#xff1a;spring配置进阶内容JDBCDaoSupport的使用spring提供了很多模板整合Dao技术 因为在jdbc、Hibernate、Mybatis中都有对数据…

稳定排序和不稳定排序

http://blog.csdn.net/rebirth_love/article/details/52354338 这几天笔试了好几次了&#xff0c;连续碰到一个关于常见排序算法稳定性判别的问题&#xff0c;往往还是多选&#xff0c;对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目&#xff0c;当然如果你笔试之…