Tag:

什么整数散列函数是好的,接受一个整数散列键?

什么整数散列函数是好的,接受一个整数散列键?

string的散列函数

我正在使用C语言的哈希表,我正在testingstring的哈希函数。 我试过的第一个函数是添加ascii代码并使用模(%100),但是第一次testing数据的结果很差:130个单词有40个冲突。 最终的input数据将包含8 000个字(这是一个文件中的一个字典)。 散列表被声明为int table [10000],并包含单词在txt文件中的位置。 第一个问题是哪个是散列string的最佳algorithm? 以及如何确定哈希表的大小? 提前致谢 ! 🙂

为什么String中的hashCode()使用31作为乘数?

在Java中, String对象的哈希码计算为 s[0]*31^(n-1) + s[1]*31^(n-2) + … + s[n-1] 使用int算术,其中s[i]是string的第 i 个字符, n是string的长度, ^表示取幂。 为什么31被用作乘数? 我知道乘数应该是一个相对较大的素数。 那么为什么不是29,或37,甚至97?

什么是重写的System.Object.GetHashCode的最佳algorithm?

在.NET中System.Object.GetHashCode方法被用在很多地方,在整个.NET基类库中。 特别是在快速查找collections中的物品或确定平等时。 是否有一个标准的algorithm/最佳做法如何实现我的自定义类的GetHashCode覆盖,所以我不降低性能?