在算法精解这本书上看到一个字符串哈希处理函数,知其然不知其所以然,仅记下以作备用
unsigned int hash(const void* key) { const char* ptr; unsigned int val; val = 0; ptr = key; while(*ptr != '\0') { unsigned int tmp; val = (val << 4) + (*ptr); if(tmp = (val & 0xf0000000)) { val = val ^ (tmp >> 24); val = val ^ tmp; } ptr++; } return val % HASH_TABLE_SIZE; }