用c语言写一个哈希函数
时间: 2024-10-02 17:01:52 浏览: 33
hashk,怎样编成功的游戏c语言源码,c语言
在C语言中,我们可以使用数组和下标来创建一个简单的线性探测哈希函数。这种哈希函数的基本思想是通过取输入字符串或整数的某个字段(通常是最低几位)除以数组大小得到索引。下面是一个简单的例子:
```c
#include <stdio.h>
#include <string.h>
// 假设我们有一个固定大小的哈希表
#define TABLE_SIZE 101
// 简单的字符哈希函数
unsigned int hash(char *str) {
unsigned int len = strlen(str);
return (len % TABLE_SIZE); // 取模操作,避免溢出
}
int main() {
char input[] = "Hello";
printf("Input string: %s\n", input);
unsigned int index = hash(input);
printf("Hashed index: %d\n", index);
return 0;
}
```
这个函数适用于字符串输入,它首先计算字符串的长度,然后取余数作为数组的索引。如果多个键产生了相同的索引,这可能导致冲突,这时可能需要用开放地址法(如线性探测再散列)或者链地址法解决。
请注意,这只是一个非常基础的示例,并非高效的哈希函数。实际应用中,可能会使用更复杂的方法,例如MD5、SHA-1等加密算法来生成更安全的哈希值。
阅读全文