算法 rmmseg-cpp dictionary 中取哈希值相关算法疑问

fbsender · October 09, 2014 · Last by fbsender replied at October 09, 2014 · 7043 hits

gem rmmseg-cpp 使用 c++ 扩展的中文分词 gem

分词前,需加载分词所用的词库,为了提升搜索性能,为词库中的每个词依据每个字符与词语长度计算出不同的哈希值,算法如下:

static unsigned int hash(const char *str, int len)
{
    unsigned int key = 0;
    while (len--)
    {
        key += *str++;
        key += (key << 10);
        key ^= (key >> 6);
    }
    key += (key << 3);
    key ^= (key >> 11);
    key += (key << 15);
    return key;
}

请问这样计算哈希值的目的是什么呢?

发帖总是没人理我,不开心...

You need to Sign in before reply, if you don't have an account, please Sign up first.