字符串哈希算法——BKDRHash

BYVoid对常用的几种字符串哈希函数进行了一次小小的评测。其评测结果,按照得分从高到低依次为BKDRHash,APHash,DJBHash,JSHash,RSHash,SDBMHash,PJWHash,ELFHash。

其中,最优的字符串哈希算法BKDRHash函数实现如下:

// BKDR Hash Function
unsigned int BKDRHash(const char *str)
{
    unsigned int seed = 131; // 31 131 1313 13131 131313 etc..
    unsigned int hash = 0;

    while (*str){
        hash = hash * seed + (*str++);
    }

    return (hash & 0x7FFFFFFF);
}

比如,哈希字符串“Hello,World!”将会得到数字“632968537”。


©qingdujun
2018-9-1 于 北京 海淀

References:
[1] https://www.byvoid.com/zhs/blog/string-hash-compare

猜你喜欢

转载自blog.csdn.net/u012339743/article/details/82290532
今日推荐