发现一种简单高效的Hash算法,比常用的几种算法效率高出一倍以上
原文:http://blog.csdn.net/dz_huanbao/archive/2009/06/26/4301129.aspx
代码:
int GetHashCode(const string& key)
{
int hashcode = 0;
int kelength = (int) key.length();
int COUNT = (kelength >> 2) + ((kelength & 3) ? 1 : 0);
int data[1024];
memcpy(((char*) data) + 0, key.c_str(), kelength);
memset(((char*) data) + kelength, kelength, (COUNT << 2) - kelength);
for (int n = 0; n < COUNT; n++)
{
hashcode += (data[n] << n);
}
return hashcode;
}
欢迎有兴趣的朋友一起研究一下。