读书人

哈希表选择

发布时间: 2012-12-29 10:28:09 作者: rapoo

哈希表选择求助
写一个检查单词拼写错误的程序(英文),字典大概有7W单词。
哈希函数是:
unsigned int HashTable::hashCode(const string & p, int len)const
{
unsigned int h=0;
for(int i=0;i<len;i++)
{
h=h<<5|h>>27;
h+=(unsigned int)p[i];
}
h=h%capacity;
return h;
}
问题一:这里p是要检查的单词,len是什么呢?
问题二:哈希表选取多大呢?
问题三:冲突用double hash做,那么hash2选取什么函数呢?
多谢高手帮忙解答!
[解决办法]
1.由于有语句h+=(unsigned int)p[i];,所以len显然是p的长度.
2.由于有语句
h=h%capacity;
return h;
散列表的大小显然应至少为capacity.
3.由于本人不了解hash2是什么,故无法回答.
(是不是二次散列函数?)

读书人网 >软件架构设计

热点推荐