霍纳算法是直接最优线性算法。 基于如下所示的小括号结合法
.....
霍纳算法的应用
引理:...... (mod (解释:取余)函数的算术性质)
在7位ASCII码中, 一个单词可以看作是128进制的数字。对于 'BlueGuy ' 这样的单词所表示的数对计算机来说太大。 无法用普通的算术函数来表达。要计算出字符串的 取模哈希函数。
可以将键分块转换。我们可以利用 mod (解释:取余)函数的算术性质并使用霍纳算法来完成。
int hash(char *v, int M)
{
int h = 0, a = 127;
for (; *v ; v++)
h = (a*h + *v) % M;
return h;
}
.....
霍纳算法的应用
引理:...... (mod (解释:取余)函数的算术性质)
在7位ASCII码中, 一个单词可以看作是128进制的数字。对于 'BlueGuy ' 这样的单词所表示的数对计算机来说太大。 无法用普通的算术函数来表达。要计算出字符串的 取模哈希函数。
可以将键分块转换。我们可以利用 mod (解释:取余)函数的算术性质并使用霍纳算法来完成。
int hash(char *v, int M)
{
int h = 0, a = 127;
for (; *v ; v++)
h = (a*h + *v) % M;
return h;
}
我就是真命天子,顺我者生,逆我者死!