哈希函数有很多种不同的实现方式,每种实现方式都有自己的公式。下面列举一些常见的哈希函数及其公式:
1. 直接寻址法:将关键字作为数组下标直接访问数组元素。
h(key) = key
2. 数字分析法:利用关键字中的数字分布特点生成哈希值。
假设关键字为 d1d2...dn,哈希函数为 h(key) = (a1*d1 + a2*d2 + ... + an*dn) mod m,其中 a1, a2, ..., an 是系数,m 是哈希表长度。
3. 平方取中法:先将关键字平方,然后取中间几位作为哈希值。
假设关键字为 k,哈希函数为 h(k) = (k^2 >> r) & mask,其中 r 是一个常数,mask 是一个掩码,用于保留哈希值的低位。
4. 折叠法:将关键字分成若干段,对每段进行相加或者异或操作,最后将结果相加或者异或得到哈希值。
假设关键字为 k,哈希函数为 h(k) = (k1 + k2 + ... + kn) mod m,其中 ki 是关键字的第 i 段,m 是哈希表长度。
5. 哈希链法:将关键字映射到一个桶中,桶中存储一个链表,哈希值就是链表的头指针。
假设关键字为 k,哈希函数为 h(k) = k mod m,其中 m 是哈希表长度。
这些公式只是哈希函数的一部分实现方式,实际应用中还有很多其他的实现方式。选择合适的哈希函数需要根据具