一个非常好的字符串Hash函数
2012-03-04 20:43
148 查看
int cal_key(char *key){ unsigned int h = 0; while (*key){ h = (h << 4) + *key++; unsigned int g = h & 0xf0000000L; if (g) h ^= g >> 24; h &= ~g; } return h%PRIME;
这是一段非常好的字符串Hash函数。
相关文章推荐
- 一个非常好用的正则表达式替换字符串包含的域名
- 考虑一个特殊的hash函数h,能将任一字符串hash成一个整数k,其概率p(k) = 2^(-k),k = 1,2,3,4,....对于一个未知大小的字符串集合S中的每一个元素取hash值所组成的集
- 谷歌:有一个由大小写组成的字符串,将其中的所有小写字母排在大写字母的前面
- 在学习php正则和字符串的一个实例分享
- 定义一个字符串“HOLLE WORLD”将其转换成小写
- eclipse中在整个工程中查找一个字符串的步骤
- VC6 下学习使用Teechart8记录 一 安装和熟悉teechart8【一个非常好的画图插件】
- 2016/09/17 将一个字符串翻转
- java集合TreeMap应用---求一个字符串中,每一个字母出现的次数
- 算法:将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。
- 【JavaScript】面试题:重复输出一个给定的字符串
- 正则表达式(一个字符串翻转的例子)(http://www.cnblogs.com/hai98)
- Php中判断一个字符串为空
- 一个字符串的字符重新排序后,能否变成另外一个字符
- 字符串匹配问题:输入一个字符串,计算其中包含的‘连续’给定的子字符串最长的个数.
- C语言实现一个去除字符串中的首尾空格,字母中间有多个空格的去除多余的,剩余一个空格
- 一个消除重复排列的所有输入字符串的排列算法
- 左旋字符串以及判断一个字符串是否另一个字符串左旋后的字符串
- php将一个字符串转变成键值对数组的效率问题
- C语言 编写一个函数,它从一个字符串中提取一个子字符串