7-8 整型关键字的散列映射

news/2024/12/15 21:06:27/

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

输入格式:

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

输出格式:

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

输入样例:

4 5
24 15 61 88

输出样例:

4 0 1 3

代码长度限制

16 KB

时间限制

400 ms

内存限制

64 MB

栈限制

8192 KB

#include <stdio.h>
#include <stdlib.h>
#include <string.h>int main()
{int i, n, p, x, k;scanf("%d %d", &n, &p);int *s = (int *)malloc(sizeof(int) * p);memset(s, 0, sizeof(int) * p); // 初始化动态数组s[]for (i = 0; i < n; i++){scanf("%d", &x);k = x % p;if (s[k] == 0){ // 如果此位置为空,直接存放s[k] = x;}else{ // 否则while (s[k] != 0 && s[k] != x){// 依次往后寻找,直到找到空位,或者找到具有相同的值的数字k = (k + 1) % p;}if (s[k] != x){ // 如果没有相等的,那么存储xs[k] = x;}// 否则,不用重复存储x}if (i == 0){printf("%d", k);}else{printf(" %d", k);}}return 0;
}

http://www.ppmy.cn/news/1555410.html

相关文章

【ZYNQ开发】Vitis下保存与快速加载BSP配置的方法

在使用Xilinx的Vitis进行ZYNQ PS端开发时&#xff0c;常常涉及到对于BSP的设置&#xff0c;比较典型的像是使用lwip时&#xff0c;需要对DHCP、memory以及send_buffer等进行一些自定义的修改。在设计到硬件描述文件需要进行更换&#xff08;PL端更改程序&#xff09;重新加载工…

uniapp小程序的锚点定位(将页面滚动到目标位置)

小程序中&#xff0c;a页面跳转到b页面&#xff0c;跳转后滚动定位到b页面的特定位置。 1.uni.pageScrollTo传递一个scrollTop参数可以滚动到特定位置。2.可以通过 uni.createSelectorQuery()等获取定位元素的位置信息。3.uni.getSystemInfoSync()获取设备的导航栏和状态栏高度…

超高清监测护航风电叶片,铸就绿色能源新未来

中国是世界风电第一大国。 2023年&#xff0c;中国风电叶片市场规模约为442亿元。根据中商产业研究院分析师预测&#xff0c;2025年中国风电叶片市场规模将增长至562亿元。全球风电装机容量的不断扩容&#xff0c;无疑预示着风电叶片市场将持续保持旺盛态势。 风电叶片是风电…

Maven完整技术汇总

额外知识点 IDE IDE是集成开发环境的缩写&#xff0c;它是一种软件应用程序&#xff0c;提供了编码、调试和部署软件的一站式解决方案。这些功能集成在一起&#xff0c;使开发人员能够在一个环境中完成整个软件开发过程&#xff0c;从编写代码到调试和测试&#xff0c;直到最终…

最新全开源IM即时通讯系统源码(PC+WEB+IOS+Android)部署指南

全开源IM&#xff08;即时通讯&#xff09;系统源码部署是一个复杂但系统的过程&#xff0c;涉及多个组件和步骤。以下是一个详细的部署指南&#xff0c;旨在帮助开发者或系统管理员成功部署一个全开源的IM系统&#xff0c;如OpenIM。      IM即时通讯系统源码准备工作   …

【Linux】线程互斥 | 死锁 | 进程同步

文章目录 &#x1f449;线程互斥&#x1f448;互斥相关概念互斥量全局互斥锁局部互斥锁互斥锁的进一步认识互斥锁的实现原理 &#x1f449;可重入和线程安全&#x1f448;概念常见的线程不安全的情况常见的线程安全的情况常见不可重入的情况* 常见可重入的情况可重入与线程安全…

软件安全性测试有多重要?好用的安全测试工具有哪些?

在信息化快速发展的今天&#xff0c;软件安全性逐渐成为各个企业和个人关注的核心问题。随着网络攻击事件的频发&#xff0c;软件的安全性不仅直接关系到企业信息的安全&#xff0c;也极大地影响了用户的信任度和使用体验。 一、软件安全性测试的重要性体现在多个方面&#xf…

如何通过编译器标志增强移动应用的安全性

作为一名 Android 或 iOS 开发者&#xff0c;您可能已经熟悉一些常见的安全开发最佳实践&#xff0c;比如验证外部输入、合理管理内存以及避免使用弱加密算法。然而&#xff0c;即便是最精心编写的代码&#xff0c;也可能包含一些 bug&#xff0c;其中一些可能会导致可被利用的…