我在互联网上找到的大多数散列函数总是使用整数作为它们的参数之一以及散列表大小和我遇到的最简单的重新散列函数是这样的:
int rehash(int item, int tableSize) {
return hash(item+1,tableSize);
}
和通常使用的哈希函数是:
int hash(int item, int tableSize) {
return item % tableSize;
}
我想知道他们是否是相当于此的字符串?
我的哈希函数:
int hash(string& item, int n) {
int hashVal = 0;
int len = item.length();
for(int i = 0; i < len; i++)
hashVal = hashVal*37 + item[i];
hashVal %= n;
if(hashVal < 0) hashVal += n;
return hashVal;
}