字符串hash ELFhash
来源:互联网 发布:淘宝suvi韩国是正品吗 编辑:程序博客网 时间:2024/04/28 01:10
ELFhash,一种对字符串求hash值的函数,最后模槽数。
h(hash)是最后求得的hash值,对字符串中每一个字符进行遍历。
思路:每次h左移四位,将key的ASCII放入。由于long32位,当存到第7个字符的时候,最高的4位被填满了,下一次再左移4位就会发生数据丢失,因此,要处理这种情况。
unsigned long g=h&0xf0000000L;这一行 ,g存的是h的最高4位,0xf0000000=11110000000000000000000000000000,4个1,28个0,这样&过就是最高4位。
如果最高4位有值,首先将g右移24位,然后和h异或得到新值,这样,溢出的可能就被处理掉,然后h&=~g;最高4位清0,~g和h的高4位每一位相反,&上就是0,。
最终模上槽位,求出哈希值。
int ELFHash(char * key)
{
unsigned long h=0;
while(*key)
{
h=(h<<4)+*key++;
unsigned long g=h&0xf0000000L;
if(g)
{
h^=(g>>24);
h&=~g;
}
}
return h%M;
}
0 0
- 字符串hash ELFhash
- ELFHash字符串Hash算法
- Hash Compared & ELFHash 详解
- HDU 1800 Flying to the Mars 【字符串hash(ELFhash算法) / map】
- ELFhash
- ELFhash
- ELFhash - 优秀的字符串哈希算法
- 再来一个复习一下,ELFhash算法和hash table
- 哈希(hash) 之 ELFHash 和 静态hash(模拟链接法)
- ELFhash字符串散列函数——HDU1004
- 字符串hash
- 字符串HASH
- 字符串Hash
- 字符串hash
- 字符串hash
- 字符串hash
- 字符串Hash
- 字符串hash
- 【LeetCode】Reorder List
- 交互式shell和非交互式shell、登录shell和非登录shell的区别
- ActiveMQ、Spring整合学习
- mq_open permission denied问题
- VC获取父进程PID
- 字符串hash ELFhash
- PHP开源Apache日志分析工具收集与比较
- 编程珠玑13章
- Hash Table 哈希表 C++ 例子
- 第十二周项目四银行系统任务三--将程序用多文件组织
- 土豆和地瓜的故事
- Longest Substring Without Repeating Characters
- 哪个对象才是锁?
- python多进程处理