哈希表(开放定址法处理冲突)(1013)

SWUST OJ1013: 哈希表(开放定址法处理冲突) 采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用开放定址法的线性探测。第一行为哈希表的长度n;第二行为关键字的个数;第三行为关键字集合;第三行为要查找的数据。如果查找成功,输出关键字所哈希表中的地址和比较次数;如果查找不成功,输出-1。 阅读详情

Description

采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用开放定址法的线性探测。

Input

第一行为哈希表的长度n; 第二行为关键字的个数; 第三行为关键字集合; 第三行为要查找的数据。

Output

如果查找成功,输出关键字所哈希表中的地址和比较次数;如果查找不成功,输出-1。
如果查找成功,输出关键字所哈希表中的地址和比较次数;如果查找不成功,输出-1。

Sample Input

行数数据
113
211
316 74 60 43 54 90 46 31 29 88 77
416

代码

#include<iostream>
#include<cstdlib>
using namespace std;
typedef struct
{
    int data;
    int len, n;
}HashTable;
HashTable ha[101],Ha;
void InsertHT()
{
    int adr, k, cur = 0;
    cin >> k;
    adr = k%Ha.len;
    if (ha[adr].data == -1)
        ha[adr].data = k;
    else
    {
        while (ha[adr].data != -1 && cur < Ha.len)
        {
            adr = (adr + 1) % Ha.len;
            cur++;
        }
        ha[adr].data = k;
    }
}
void CreateHT(int len, int n)
{
    int i;
    Ha.len = len, Ha.n = n;
    for (i = 0; i < n; i++)
        ha[i].data = -1;
    for (i = 0; i < n; i++)
        InsertHT();
}
void Search(int x)
{
    int adr = x%Ha.len;
    int cnt = 1; int k = 0;
    while (ha[adr].data != -1 && ha[adr].data != x&&k<Ha.len)
    {
        cnt++;
        adr = (adr + 1) % Ha.len;
        k++;
    }
    if (ha[adr].data == x)
        cout << adr << ',' << cnt;
    else
        cout << -1;
}
int main()
{
    int len, n, x;
    cin >> len >> n;
    CreateHT(len, n);
    cin >> x;
    Search(x);
    return 0;
}
数据结构 二分查找 上机实验 描述 编写Search_Bin函数,实现在一个递增有序数组ST中采用折半查找法确定元素位置的算法. Input 第一行:元素个数n 第二行:依次输入n个元素的值(有序) 第三行:输入要查找的关键字key的值 Output 输出分两种情形: 1.如果key值存在,则输出其在表中的位置x(表位置从0开始),格式为The element position is x. 2.如果key值不存在输出:"The element is not exist." Sample Input 6 1 3 5 7 9 10 5 Sample Output The element position is 2. 立即下载

相关推荐

微信h5 支付,已经获得weixin://wap/pay?prepayid,但是无法调起微信客户端支付

结果几个接口,最终获得到到一直包含调起微信客户端的支付链接 但是直接打开这个页面,却不能调起微信客户端支付,原因是,在打开新页面的时候,需要设置a.rel = "noreferrer"; <body> <a href="javascript:void(0)" onclick="openNewWindowNoreferrer(this)">点击支付</a&...

qq_31683775的博客 4万+

哈希表(开放寻址法)

#include<iostream> #include<cstring> using namespace std; const int N=200003; int h[N],null=0x3f3f3f3f; int find(int x) { int k=(x%N+N)%N; while(h[k]!=null&&h[k]!=x) { k++; if(k==N) k=0; } return k; }...

qq_56017552的博客 581

EEGNet 网络代码解析与实战复现指南

本文详细解析了EEGNet这一轻量级卷积神经网络的结构与设计思想,重点阐述了其利用深度可分离卷积高效处理脑电信号的原理。文章提供了基于PyTorch的完整代码复现指南,包括网络搭建、数据模拟、训练调试及关键参数解析,旨在帮助读者掌握EEGNet的代码复现技巧,并将其应用于脑机接口等实际场景。

honey的博客 534

swust.oj.1013

哈希表(开放定址法处理冲突)(1013) Time limit(ms): 1000 Memory limit(kb): 10000 Submission: 4051 Accepted: 2177 Accepted 采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用开放定址法的线性探测。 Description#i

向着曙光前进的博客 931

2018南京大学计算机夏令营机试

1. Count number of binary strings without consecutive 1’s Given a positive integer n(3≤n≤90), count all possible distinct binary strings of length n such that there are no consecutive 1's . Examples...

climber16的博客 1万+

STM32F103(二十三)通用同步异步收发器(USART)

学习板:STM32F103ZET6 往期博客: STM32F103五分钟入门系列(一)跑马灯(库函数+寄存器)+加编程模板+GPIO总结 STM32F103五分钟入门系列(二)GPIO的七大寄存器+GPIOx_LCKR作用和配置 STM32F103五分钟入门系列(三)GPIO的常用库函数使用方法总结+一个网络上的误区 STM32F103五分钟入门系列(四)蜂鸣器实验(库函数+寄存器) STM32F103五分钟入门系列(五)按键实验(库函数+寄存器) STM32F103五分钟入门系列(六)时钟框图+相关寄存器

Curnane0_0的博客 1019

数据结构:哈希表

哈希表的核心 计算位置:构造散列函数确定关键词存储位置; 解决冲突:应用某种策略解决多个关键词位置相同的问题 计算位置 数字关键词 直接定址法:取关键词的线性函数值为散列地址,即 key + b a = h(key) (a、b为常数) 除留余数法:散列函数为:h(key) = key mod p;p 取素数 数字分析法:分析数字关键字在各位上的变化情况,取比较随机的位作为散列地址 折叠法:把关键词分割成位数相同的几个部分,然后叠加 平方取中法 字符关键词 核心思想

weixin_43530064的博客 345

Unity 工具 之 SoftMask软遮罩 实现 UI 边缘渐变过渡的简单使用介绍

目录Unity 工具 之 SoftMask软遮罩 实现 UI 边缘渐变过渡的简单使用介绍一、简单介绍二、Mask 实现的遮罩效果三、Soft Mask 实现遮罩效果四、 Soft Mask 的一些设置五、插件下载Unity 工具类,自己整理的一些游戏开发可能用到的模块,单独独立使用,方便游戏开发。

仙魁XAN 8575

哈希表

哈希表 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 1 给定一个表用来存放数据,对于给定的关键字可以通过哈希函数计算出相应的值找到该关键字在表中的位置。 不同的关键字可能得到同一散列地址,即k1≠k2,而f(k...

M_jianjianjiao 625

Loki 分布式日志中心服务

分布式日志中心 Loki + Promtail + Grafana

原名又逢乱世。不要放下学习的脚步,毕竟比天天打牌、钓鱼、打游戏更能从内在充实自己。 2355

(王道考研计算机网络)第三章数据链路层-第一节:数据链路层功能概述

文章目录一:本章概述二:数据链路层基本概念三:数据链路层功能概述(1)为网络层提供服务(2)链路管理(3)组帧(4)流量控制(5)差错控制 本章是计算机网络中入门较难的一章,如果没有接触过相关内容,可能会止步于一些晦涩难懂的术语。本节内容希望大家可以用心看一看,对于大家入门是很有帮助的 一:本章概述 数据链路层位于物理层之上,主要作用就是提高物理层传输比特流的能力,使物理层可能出现差错的连接转变为逻辑上无差错的数据链路,同时向网络层提供服务。本章学习的主要就是数据链路层的功能和应用 数据链路层功能 封

快乐江湖的博客 2471

SWUST OJ 1013: 哈希表(开放定址法处理冲突)

1013: 哈希表(开放定址法处理冲突) 题目描述 采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用开放定址法的线性探测。 输入 第一行为哈希表的长度n; 第二行为关键字的个数; 第三行为关键字集合; 第三行为要查找的数据。 输出 如果查找成功,输出关键字所哈希表中的地址和比较次数;如果查找不成功,输出-1。 样例输入 13 11 16 74 60 43 54 90 46 31 29 88 77 16 样例输出 3,1 思路: 哈希表的基本概念: 哈希表(Hash ta

橙橙橙汁i的博客 1838

手把手教你学simulink实例:基于Simulink的风力发电系统建模与仿真

风力发电作为一种清洁、可再生的能源形式,近年来得到了快速发展。风力发电系统的性能优化和控制策略设计对于提高发电效率、降低运行成本具有重要意义。本项目旨在使用MATLAB/Simulink平台,对风力发电系统进行建模与仿真,研究其动态特性,并验证控制策略的有效性。通过建立风力发电机、传动系统、发电机及电力电子变换器等子系统的模型,实现对风力发电系统的全面分析。

MHD0815的博客 559

SWUSTOJ #1013 哈希表(开放定址法处理冲突)

采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用开放定址法的线性探测。

oafseoases 1315

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

西南科技大学OJ题 哈希表(开放定址法处理冲突)1013

哈希表(开放定址法处理冲突) 1000(ms) 10000(kb) 2685/6158 采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用开放定址法的线性探测。 输入 第一行为哈希表的长度n; 第二行为关键字的个数; 第三行为关键字集合; 第三行为要查找的数据。 输出 如果查找成功,输出关键字所哈希表中的地址和比较次数;如果查找不成功,输出-...

1063

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

哈希表(开放定址法处理冲突)

哈希表(开放定址法处理冲突) 采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用开放定址法的线性探测。 输入 第一行为哈希表的长度n; 第二行为关键字的个数; 第三行为关键字集合; 第三行为要查找的数据。 输出 如果查找成功,输出关键字所哈希表中的地址和比较次数;如果查找不成功,输出-1。 样例输入 13 11 16 74 60 43 54 90 46 31 29...

Irving_Iverson的博客 1105

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SWUSTOJ 1013: 哈希表(开放定址法处理冲突)

1013: 哈希表(开放定址法处理冲突) 题目描述 采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用开放定址法的线性探测。 输入 第一行为哈希表的长度n; 第二行为关键字的个数; 第三行为关键字集合; 第三行为要查找的数据。 输出 如果查找成功,输出关键字所哈希表中的地址和比较次数;如果查找不成功,输出-1。 样例输入 13 11 16 74 60 43 54 90 46 31 29 88 77 16 样例输出 3,1 #include <iostream&

chenwenqqqq的博客 596

1013: 哈希表(开放定址法处理冲突)

题目描述 采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用开放定址法的线性探测。 输入 第一行为哈希表的长度n; 第二行为关键字的个数; 第三行为关键字集合; 第三行为要查找的数据 输出 如果查找成功,输出关键字所哈希表中的地址和比较次数;如果查找不成功,输出-1。 样例输入 13 11 16 74 60 43 54 90 46 31 29 88 77 16 样例输出 3,1 #include<stdio.h> #include<malloc.h> #

chen10151015的博客 1084

哈希表及处理冲突的方法

哈希表及处理冲突的方法 哈希法又称散列法、杂凑法以及关键字地址计算法等,相应的表称为哈希表。这种方法的基本思想是:首先在元素的关键字k和元素的存储位置p之间建立一个对应关系f,使得p=f(k),f称为哈希函数。创建哈希表时,把关键字为k的元素直接存入地址为f(k)的单元;以后当查找关键字为k的元素时,再利用哈希函数计算出该元素的存储位置p=f(k)...

小时候挺菜的博客 2065

SWUST OJ1013: 哈希表(开放定址法处理冲突)C++实现

采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用开放定址法的线性探测。第一行为哈希表的长度n;第二行为关键字的个数;第三行为关键字集合;第三行为要查找的数据。如果查找成功,输出关键字所哈希表中的地址和比较次数;如果查找不成功,输出-1。

Ljy的博客 839

swust oj 1013

哈希表(开放定址法处理冲突) 1000(ms) 10000(kb) 2698 / 6177 采用除留余数法(H(key)=key %n)建立长度为n的哈希表,处理冲突用开放定址法的线性探测。 输入 第一行为哈希表的长度n; 第二行为关键字的个数; 第三行为关键字集合; 第三行为要查找的数据。 输出 如果查找成功,输出关键字所哈希表中的地址和比较次数;...

abegvl6849的博客 440

开放定址法解决hash冲突(C语言)

<br />/* * hashquad.c 开放定址法解决hash冲突问题 */ #include <stdio.h> #include <stdlib.h> #include "hashquad.h" #include "fatal.h" #define MIN_TABLE_SIZE (10) #define REHASH_FACTOR (0.7) enum kind_of_entry { legitimate, empty, deleted }; struct hash_e

Codelife 1139
上一篇: 哈希表(链地址法处理冲突)(1012)
下一篇: 邻接矩阵存储简单路径
soldier_wing
博客等级 码龄11年 36粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值