一个针对字符串的散列函数--《编程珠玑》读书笔记
#define NHASH 29989 //根据自己的实际需要来设置 #define MULT 31 unsigned int hash(char* p) { unsigned int h = 0; for ( ; *p; p++) { h = MULT * h + *p; } return h % NHASH; }
本来我以为其中的31是为了将一个字符串,比如abc当做一个31进制的数字来看,但是考虑到26个英文字母再加上大写的情况,就是52个,跟31不沾边啊。
留待思考!