当前位置: IT大杂烩 > 人工智能  > 字符串哈希(HASH)函数【来自GLIB】

字符串哈希(HASH)函数【来自GLIB】

www.someabcd.com  网友分享于:May 18, 2018 11:09:07 AM

看了一下GLIB中的GHashTable的源码,比较有用的字符串哈希函数如下:

/**
* Author:puresky
* Date: 2010/12/21
* Purpose: str_hash
*/
#include <stdio.h>
#include <stdlib.h>

//GLIB中的字符串哈希函数[g_str_hash]
unsigned int str_hash(const char *str)
{
const signed char *p = (const signed char*)str;
unsigned int h = *p;
if(h)
{
for(p += 1; *p != '\0'; ++p)
h = (h << 5) - h + *p;
}
return h;
}

int main(int argc, char** argv)
{
const char* str = "abc123456abcdefghijklmnopqrstuvwxyz";
const char* p = str;
while(*p != '\0')
{
printf("%s:%un", p, str_hash(p));
p++;
}
system("pause");
return 0;
}

 

运行结果如下:

1

发布此文章仅为传递网友分享,不代表本站观点,若侵权请联系我们删除,本站将不对此承担任何责任。
Copyright ©2018  IT大杂烩  版权所有  京ICP备11030978号-1 网站地图