哈希查找算法的思想:通过对元素的关键字值进行某种运算,直接求出元素的地址,即使用关键字到地址的直接转换方法,而不需要反复比较。
直接转换方法有很多,这里介绍最常用的一种方法:除留取余法,即H(key)=key%p;
p一般为小于表长的最大质数。例如,表长为100,p取97.
//实现哈希查找算法
#include
#include
#define m 20 //散列表的长度
#define n 12 //元素个数
#define t 19 //t为不大于散列表长度的最大质数
typedef struct
{ int key;
//关键字,此处可理解为元素的大小
int compare;
//比较次数
} HashTable;
HashTable a[20]={0};
int b[12]={12,2,1,34,45,56,32,7,5,44,13,6};
//创建散列表
void CreatHash()
{
for(int i=0;
i
运行结果为:
文章图片
【数据结构|数据结构——哈希查找的实现(C语言)】
推荐阅读
- c语言|C语言制作小游戏——贪吃蛇
- 数据结构|数据结构——二分查找(折半查找)算法详解(C语言)
- 计算机面试基础知识汇总|数据库基础知识(面试)
- C语言-经典永不过时|0基础玩转C语言—初识C语言(上)
- C语言-经典永不过时|C语言入门(前期准备工作)——超级详细的建议和教学,带你顺利跨越编程门槛
- 杂项|新编密码学——Hash函数
- 树与二叉树
- 2021/05/07 1031 查验身份证 (15 分)
- 笔记|7-21 求前缀表达式的值 (25 分)c语言