算法---散列表
来源:互联网 发布:淘宝号信誉查询网址 编辑:程序博客网 时间:2024/06/10 08:44
如果能在关键字与记录保存的位置之间建立一种联系,则可以不经过比较,直接对关键字进行计算得出记录的位置,再到相应位置去读取数据即可。
将这种关键字与记录保存位置之间的对应关系称为散列函数,将这种方式建立的表称为散列表。
#include<stdio.h>
#define HASH_LEN 13
#define TABLE_LEN 8
int data[TABLE_LEN] = {69,65,90,37,92,6,28,54};
int hash[HASH_LEN] = {0};
void InsertHash(int hash[],int m,int data)
{
int i;
i = data % 13;
while(hash[i])
i = (++i) % m;
hash[i] = data;
}
void CreateHash(int hash[],int m,int data[],int n)
{
int i;
for(i=0;i<n;i++)
InsertHash(hash,m,data[i]);
}
int HashSearch(int hash[],int m,int key)
{
int i;
i = key % 13;
while(hash[i] && hash[i] != key)
i = (++i) % m;
if(hash[i] == 0)
return -1;
else
return i;
}
int main()
{
int key,i,pos;
CreateHash(hash,HASH_LEN,data,TABLE_LEN);
printf("hash result:");
for(i=0;i<HASH_LEN;i++)
printf("%ld ",hash[i]);
printf("\n");
printf("enter key for search:");
scanf("%d",&key);
pos = HashSearch(hash,HASH_LEN,key);
if(pos > 0)
printf("search success location is %d \n",pos);
else
printf("search failed\n");
return 0;
}
0 0
- 算法导论-----散列表
- 《算法》—散列表
- 《算法导论》散列表
- 算法---散列表
- 《算法4》散列表
- 算法-----链接法散列表
- 算法导论之散列表
- 算法导论小结-散列表
- 算法导论—散列表
- 算法--查找--散列表查找
- 查找算法—散列表
- 算法原理系列:散列表
- 算法(3.4 散列表)
- Hash算法与散列表基础算法
- 算法列表
- 《算法导论》第11章 散列表 (2)散列表
- 算法----乘法连接法散列表
- 算法导论十一章:散列表
- java学习(10)
- Hbase scan
- Tween动画 xml文件实现
- Android之QQ授权登录获取用户信息
- 软件测试教训记录
- 算法---散列表
- async-validator的使用说明
- Hive 数据倾斜总结()
- Oracle试图--v$event_name
- 因系统版本差异而引起的datepicker样式改变
- CALayer绘制折线图
- 【工作效率】Facebook内部25个高效工作PPT指南
- 5-3+一点点
- Manacher计算回文子串-O(n)