当前位置: 首页 > ai >正文

哈希查找方法

已知哈希表长度为11,哈希函数为H(key)=key%11,随机产生待散列的小于50的8个元素,同时采用线性探测再散列的方法处理冲突。任意输入要查找的数据,无论是否找到均给出提示信息。

 

int func(int value)

{

return value % Max; /哈希函数 /

}

 

int search(int key) /自定义函数实现哈希查找 /

{

int pos, t;

pos = func(key); /哈希函数确定位置 /

t = pos; /t 存放确定出的位置 /

while (hashtable[t] != key && hashtable[t] != - 1)/如果该位置不等于要查找的关键字且不为空 /

{

t = (t + 1) % Max; /利用线性探测求出下一个位置 /

if (pos == t)

/如果经多次探测又回到原来用哈希函数求出的位置,则说明要查找的数不存在 /

return - 1;

}

if (hashtable[t] == - 1) /如果探测的位置是-1,则说明要查找的数不存在 /

return NULL;

else

return t;

}

 

void creathash(int key) /自定义函数创建哈希表 /

{

int pos, t;

pos = func(key); /哈希函数确定元素的位置 /

t = pos;

while (hashtable[t] != - 1) /如果该位置有元素存在,则进行线性探测再散列 /

{

t = (t + 1) % Max;

if (pos == t)

/如果冲突处理后确定的位置与原位置相同,则说明哈希表已满 /

{

printf("哈希表已满\n");

return ;

}

}

hashtable[t] = key; /将元素放入确定的位置 /

}

http://www.xdnf.cn/news/7578.html

相关文章:

  • 《微机原理与接口技术》第 8 章 常用接口芯片
  • Linux环境Centos安装mysql(联网yum安装)
  • 学习设计模式《十》——代理模式
  • string在c语言中代表什么(非常详细)
  • 虚拟机部署minikubu单节点
  • JavaScript面试题之this详解
  • Linux僵死进程以及文件操作
  • uniapp生成的app,关于跟其他设备通信的支持和限制
  • 前端无感登录刷新
  • 《算法笔记》11.7小节——动态规划专题->背包问题 问题 A: 装箱问题
  • 基于springboot的网上学校超市商城系统【附源码】
  • 【git】在Windows上搭建git服务器
  • 简单的re(零基础AI做题)
  • Pydantic数据验证实战指南:让Python应用更健壮与智能
  • 5.20打卡
  • 【C/C++】现代C++线程池:从入门到生产级实现
  • power BI 倒计时+插件HTML Content,实现更新倒计时看板!
  • 去中心化算力池:基于IPFS+智能合约的跨校GPU资源共享平台设计
  • 2.4.2死锁的处理策略-预防死锁
  • 【解决】rpm 包安装成功,但目录不存在问题
  • jsmpeg+java+ffmpeg 调用摄像头RTSP流播放
  • DNS 域名解析服务器
  • 卷java,继承三
  • 【Java高阶面经】3.熔断机制深度优化:从抖动治理到微服务高可用架构实战
  • 从Ntfs!NtfsReadMftRecord函数到Ntfs!NtfsMapStream函数从0x274a到0xc4312800
  • SAR ADC 比较器寄生电容对性能的影响
  • 镜像管理(2)Dockerfile总结
  • 技术问答:PHP、JAVA和Go的垃圾回收机制有哪些区别
  • HarmonyOS5云服务技术分享--云函数创建配置指南
  • 软考软件评测师——黑盒测试测试方法