【发布时间】:2011-02-27 01:54:24
【问题描述】:
我想构建一个哈希表,在 1 到 15 个字节的字节序列(字符串)中查找键。
我想存储一个整数值,所以我想一个用于散列的数组就足够了。我很难概念化如何构造一个散列函数,以便给定键会给数组一个索引。
任何帮助将不胜感激。
哈希中的最大条目数为:4081*15 + 4081*14 + ... 4081 = 4081((15*(16))/2) = 489720。
例如:
int table[489720];
int lookup(unsigned char *key)
{
int index = hash(key);
return table[index];
}
哈希函数有哪些不错的选择,或者我将如何构建一个?
谢谢。
【问题讨论】:
-
如果两个键映射到同一个索引,就会发生冲突,在您的示例中未正确处理。您只是为了说明您的散列而保留您的示例,还是您真的需要关于散列表本身的额外解释? (开放散列,封闭散列,...)
标签: c string hash hashtable hash-function