#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
using namespace std;
char *key[32]= {"auto","break","case","char","const",
"continue","default","do","double",
"else","enum","extern",
"float","for","goto","if","int","long",
"register", "return", "short",
"signed","sizeof","static", "struct","switch",
"typedef","union","unsigned",
"void","volatile","while"
};
int index[32];
char *HASH[253];
int hash(char *string)
{
int i=1;
int ix = 0;
for(; *string; string++)
{
ix =ix + i*(*string);
i++;
}
ix = ix%253;
return ix;
};
void create()
{
int i;
for(i=0; i<=252; i++)
{
HASH[i]="";
}
for(i=0; i<32; i++)
{
index[i] = hash(key[i]);
HASH[index[i]] = key[i];
}
}
int findkey(char * str)
{
if(strcmp(str,HASH[hash(str)])!=0)
return 0;
else
return 1;
};
int main()
{
cout<<"关键字的哈希值为:"<<endl;
int i;
for(i=0; i<32; i++)
{
cout<<hash(key[i])<<"\t";
if(i!=0&&i%5==0)
cout<<endl;
}
cout<<endl;
char string[20]= {0};
create();
int choice;
cout<<"请输入你的选择:1,查找关键字;,-1退出查找:"<<endl;
cin>>choice;
while(choice!=-1)
{
if(choice == 1)
{
cout<<"请输入你要查找的关键字:"<<endl;
cin>>string;
if(findkey(string))
cout<<"你所输入的字符串是关键字"<<endl;
else
{
cout<<"你所输入的字符串不是关键字"<<endl;
cout<<"请输入你的选择:1,查找关键字;,退出查找:"<<endl;
}
}
cin>>choice;
}
return 0;
}
相关推荐
TL431过压保护电路实战:5.5V阈值设计全流程(附MOSFET选型建议)
本文详细介绍了基于TL431和MOSFET构建5.5V阈值过压保护电路的完整设计流程。内容涵盖核心原理、阈值计算、驱动电路设计,并重点针对大电流应用场景,提供了MOSFET选型与散热处理的实战建议,帮助工程师打造可靠高效的电源保护方案。
hash表
hash表
宝塔部署若依前端出现502解决方法
若依系统是一个基于Java语言的开源项目,旨在帮助开发者减少开发时间,特别适用于需要快速开发出一套具有用户管理、菜单管理、权限管理、定时任务、日志管理等功能的简单系统。系统分为前后端分离、分布式等架构前后端分离部署教程然而通过宝塔来部署若依系统会遇见一些问题,特此在这里记录一下。
【数据结构】哈希
什么是哈希? 将元素的存储位置和该元素的关键码通过某种函数建立一一对应的关系,构造出来的存储结构称之为哈希表,转换时借助的函数称之为哈希函数,在理想情况下,根据关键码搜索元素时可以不经过任何比较,一次性从表中查找到所要搜索的元素 但是在通过哈希函数进行元素存储位置确立的时候会出现,不同元素的关键码通过哈希函数计算出来的存储位置是相同的,这便是哈希冲突 解决哈希冲突有两种方式: 开散列 闭散列 ...
Comsol超声空化气泡仿真:从基础理论到工业应用实践
本文详细介绍了Comsol超声空化气泡仿真的基础理论及工业应用实践。通过解析超声空化现象、Comsol模型搭建流程及求解器优化技巧,帮助工程师掌握气泡仿真技术,提升超声波清洗和乳液制备等工业应用的效率与质量。
EndNote20保姆级安装教程:从下载到汉化一步到位(附闪退解决方案)
本文提供EndNote20的详细安装与汉化教程,涵盖系统准备、分步安装、路径优化及闪退解决方案。针对科研人员的需求,特别优化了中文环境下的使用体验,确保文献管理工具的高效稳定运行。
Hash相关
HashTable源码分析
【VisDrone数据集】YOLOX训练VisDrone数据集步骤与结果
YOLOX训练VisDrone数据集步骤与结果。
哈希算法(哈希函数)基本
一、什么是哈希(Hash) 哈希也称“散列”函数或“杂凑”函数。它是一个不可逆的单向映射,将任意长度的输入消息M(或文件F)映射成为一个较短的定长哈希值H(M),也叫散列值(HashValue)、杂凑值或消息摘要。可见,这是一种单向密码体制,只有加密过程,没有解密过程(因此Hash求逆很困难)。 二、哈希的原理和特点 单向性:从哈希值不能反向推导原始数据(计算不可行),即从哈希输出无法倒推输入的原始数值。这是哈希函数安全性的基础。 灵敏性:对输入数据敏感,哪怕只改了一个Bit,得到的哈希值也大不相同
STM32实战开发(122):基于STM32的溶解氧检测系统设计与实现
溶解氧(DO, Dissolved Oxygen)是水质检测中至关重要的指标之一,尤其是在环境监测、工业废水处理以及水产养殖等领域,溶解氧的浓度直接影响到水体的生态环境和生物的健康。电流的大小就可以用来反映水中溶解氧的浓度。本博客将详细介绍如何基于STM32微控制器开发一个智能溶解氧检测系统,内容涵盖系统的硬件设计、软件开发、优化与调试等方面,提供实际的代码实现与实验数据,并展望溶解氧检测系统在物联网环境下的应用。为了提高系统的精度,可以优化ADC的采样率,增加传感器的校准频率,或使用更加精确的传感器。
【ArcGIS遇上Python】使用add-in向导开发ArcGIS插件(1):add-in工具介绍及安装
文章目录addin介绍addin下载addin安装 addin介绍 ArcGIS从10.0开始支持addin(ArcGIS软件中又叫作加载项)的方式进行插件制作。相对于以往9.x系列,addin的无论是从使用或者编写都更加方便快捷。通过开发语言,可以制作ArcGIS Desktop各个软件模块的插件。 Esri提供了Python加载项向导工具来实现Addin界面的搭建,可以到Esri官网去下载该工具Python加载项向导 。从介绍来看,该设计器要求的最低ArcGIS版本为10.1 ,如下图所示: add
哈希算法(Hash函数)简单介绍
1、什么是哈希算法?(Hash函数) 哈希算法的定义和原理: 将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则,就是哈希算法。而通过原始数据映射之后得到的二进制值串就是哈希值。 设计一个优秀的哈希算法,需要满足下面几点要求: a.从哈希值不能反向推导出原始数据(所以哈希算法也叫单向哈希算法) b.对输入的数据比较敏感,原始数据即使修改一个字节,最后得到的哈希值也大不相同 c.散列冲突的概率要小,对于不同的原始数据,哈希值相同的概率非常小 d.哈希算法的执行效率要尽量高,针对较长的文本,
实时系统vxWorks - 虚拟机环境搭建
概述VxWorks 操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的...
【哈希】Hash函数算法和Hash碰撞
本文章为学习笔记,总结下常用的算法。
假人有限元模型
假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
什么是哈希Hash(散列函数)
Hash(散列函数) Hash,一般翻译做散列、杂凑,或音译为哈希,是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数 基本...
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
哈希函数/散列算法
哈希函数(Hash function),又称散列函数、散列算法,它是一种不可逆的信息摘要算法,具体实现就是把任意长度的输入信息通过哈希算法变成固定长度的输出信息。
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
哈希函数——ELF HASH和CRC HASH解析
哈希函数——ELF HASH和CRC HASH解析 一. 简介 Hash应用中,字符串是最为常见的关键字,应用非常普通,现在的程序设计语言中基本上都提供了字符串hash表的支持。字符串hash函数非常多,常见的主要有Simple_hash, RS_hash, JS_hash, PJW_hash, ELF_hash, BKDR_hash, SDBM_hash, DJB_
浅析什么是哈希算法/散列函数/哈希函数
我们来分析一下,由于这个这个函数过于简陋,它的冲突概率是较高的,比如我们分别输入“张三”、“章五”,“电话簿哈希”都输出了“z”,对于这种冲突,在哈希函数具体实现中处理方法有多种,例如“链地址法”、“再哈希法”等,文章也有很多,需要理解的是为啥它们要这么做,好处都有啥,此处不谈。即使我们已完美解决了冲突的问题,但是回顾咱们“电话簿哈希”这个哈希函数的设计原理,咱们的电话簿哈希依然存在问题——假设我姓“刘”,那么由于我会保存很多姓“刘”的亲戚,电话簿中大量的联系人都映射在了“L”这个地址下。
3分钟tips:什么是哈希算法|散列函数|哈希函数?
我的机器学习教程「美团」算法工程师带你入门机器学习 已经开始更新了,欢迎大家订阅~ 任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~ 举个例子,比如这里有一万首歌...
oracle使用哈希算法,ORA_HASH函数使用的算法是什么?
Dr Y Wit..20另一个似乎使用ORA_HASH的系统好吧,如果它"似乎在使用",那么进行一些逆向工程并检查究竟是什么调用和反汇编函数代码是有意义的.但是,如果您想深入了解Oracle内部,那么以下内容可能有所帮助.首先,您必须弄清楚内部C函数的调用.为此,您可以在一个会话中执行一些长时间运行的代码.我做了这个select avg(ora_hash(rownum)) id from(sele...
Hash+哈希+哈希函数
Hash+哈希+哈希函数 hash == 散列 == 哈希 是一种有损压缩技术 是一种数字指纹技术 哈希是一种加密算法 哈希函数(Hash Function),也称为散列函数或杂凑函数。哈希函数是一个公开函数,可以将任意长度的消息M映射成为一个长度较短且长度固定的值H(M),称H(M)为哈希值、散列值(Hash Value)、杂凑值或者消息摘要(Message Digest)。它是一种单向密码体制,即一个从明文到密文的不可逆映射,只有加密过程,没有解密过程。 它...
数据结构与算法 - Hash/哈希/散列表, 哈希函数与哈希算法
主要用于学习哈希表[散列表]与哈希算法,理解并掌握他们的原理与应用, 特别是在工作中的应用, 以及在面试时作答。
Hash函数与算法、哈希查找、哈希冲突解决方法总结
Hash哈希 1.基本概念 Hash,也叫哈希或散列,就是把任意长度的输入(也叫预映射),通过散列算法,变换成固定长度的输出,该输出就是散列值。 若结构中存在和关键字key相等的记录,则必定在H(key)的存储位置上。称该H(key)为哈希函数。 根据设定的哈希函数H(key)和处理冲突方法将一组关键字映射到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种...
哈希算法(哈希函数)的基本使用
哈希算法(哈希函数)的基本使用
布谷鸟哈希函数的参数_系统学习hash算法(哈希算法)
系统学习hash算法(哈希算法)转载请说明出处。前言:关于本文《系统学习hash算法》的由来。在看到了《十一、从头到尾彻底解析Hash 表算法》这篇文章之后,原文中没有暴雪hash快的原因分析以及和别的hash方法比能快多少,结合自己以前研究MonetDB的数据库时也涉及到了hashjoin的相关内容,于是决定实现一个简单的hash和暴雪hash比较下,但在搜索资料时发现了《一,基础知识的梳理总结...
542



被折叠的 条评论
为什么被折叠?



