摘要:
1、对于字符串,最常见的散列算法之一就是:逐个把字节加到已经构造的部分散列值的一个倍数上。乘法能把新字节在已有的值中散开来。这样,最后结果将是所有输入字节的一种彻底混合。根据经验,在对ASCII串的散列函数中,选择31和37作为乘数是很好的。P45如下所示:enum {MULTIPLIER = 31};unsigned int hash(char *str){ unsigned int h; unsigned char *p; h = 0; for(p = (unsigned int*)str; *p != '\0'; p++) h = MULTIPLIER * h + *p; 阅读全文