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

哈希查找方法

已知哈希表长度为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; /将元素放入确定的位置 /

}

相关文章:

  • Oracle RAC 中的 RBAL 进程
  • Android SharedPreferences:从零到一的全面解析与实战指南
  • Vue3 父子组件传值, 跨组件传值,传函数
  • 编译原理的部分概念
  • 桥梁凝冰在线监测装置:科技守护道路安全的新防线
  • Oracle资源管理器
  • MySQL 库的操作 -- 字符集和校验规则,库的增删查改,数据库的备份和还原
  • 服务器磁盘不同格式挂载区别
  • 基于Docker搭建Harbor私有镜像仓库
  • Java DTO 深度解析
  • vue3函数、变量
  • 【八股战神篇】Java虚拟机(JVM)高频面试题
  • 八股文--JVM(2)
  • 人工智能核心知识:AI Agent 的四种关键设计模式
  • 线上jvm假死问题排查
  • 从零开始的抽奖系统创作(2)
  • AUTOSAR图解==>AUTOSAR_SRS_SecureOnboardCommunication
  • 精益数据分析(71/126):从移情到黏性——创业阶段的关键跨越与数据驱动策略
  • 建站系统哪个好?
  • 从头实现react native expo本地生成APK
  • B站一季度净亏损收窄99%:游戏营收大增76%,AI类广告收入增近4倍
  • 焦点访谈丨售假手段又翻新,警惕化肥“忽悠团”的坑农套路
  • 最高法:政府信息公开案件审理应避免泄露国家秘密、商业秘密
  • 美国前驻华大使携美大学生拜访中联部、外交部
  • 消费维权周报丨上周涉汽车类投诉较多,涉加油“跳枪”等问题
  • 高温最强时段来了!北方局地高温有明显极端性