ELFHash 算法
来源:互联网 发布:球球大作战 知乎 编辑:程序博客网 时间:2024/06/08 08:54
ELFhash算法的基本思想是:将一个字符串的数组中的每个元素依次按前四位与上一个元素的低四位相与,组成一个长整形,如果长整的高四位大于零,那么就将它折回再与长整的低四位相异或,这样最后得到的长整对HASH表长取余,得到在HASH中的位置。
<pre name="code" class="html">public long ELFHash(String str) { long hash = 0; long x = 0; for (int i = 0; i < str.length(); i++) { hash = (hash << 4) + str.charAt(i); // hash左移4位,当前字符ASCII存入hash低四位 // 因为下一步仍要左移4位,所以如果高4位不为0,进行下面处理,防止丢失信息 // 如果最高的四位不为0,则说明字符多余7个,如果不处理,再加第九个字符时,第一个字符会被移出,因此要有如下处理 if ((x = hash & 0xF0000000L) != 0) { hash ^= (x >> 24); // 如果对于字符串(a-z 或者A-Z)就会仅仅影响5-8位,否则会影响5-31位 hash &= ~x; // 清除最高四位 (28-31) } } // 返回一个符号位为0的数,即丢弃最高位,以免函数外产生影响。 return (hash & 0x7FFFFFFF);// }
0 0
- ELFHash 算法
- ELFHash 算法
- 哈希表的ELFhash算法
- 著名的ELFhash算法
- ELFHash算法解释
- ELFHash算法解释
- ELFHash算法解释
- ELFHash算法解释
- ELFHash算法解释
- ELFHash字符串Hash算法
- ELFHash算法解释
- ElfHash算法与HashPJW算法
- ELFhash
- ELFhash
- ELFhash - 优秀的字符串哈希算法
- 再来一个复习一下,ELFhash算法和hash table
- HDU 1800 Flying to the Mars ELFhash算法
- ELFhash函数
- 判断电话号码是否合法
- 程序员面试谈薪资的6大技巧
- 判断对称数
- 怎样获得(读取)web.xml配置文件的参数
- 判断整数是否有相同部分
- ELFHash 算法
- Stanford ML - Regularization 正则化
- Cocos2d-x的内存管理机制概述
- 换个角度理解正则表达式
- tomcat和apache集群
- 手机号码合法性判断2对
- POJ3977 Subset 折半枚举
- OFBiz中services调用机制
- 接上面的拆分图片,这个是把刚才拆分的图片重新合成为原图片