数据结构——哈希查找的实现(C语言)

哈希查找算法的思想:通过对元素的关键字值进行某种运算,直接求出元素的地址,即使用关键字到地址的直接转换方法,而不需要反复比较。

直接转换方法有很多,这里介绍最常用的一种方法:除留取余法,即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语言)_第1张图片

 

你可能感兴趣的:(数据结构,数据结构,哈希算法,c语言)