`
liuxinglanyue
  • 浏览: 564853 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ELFHash 算法

阅读更多

上个学期上Distributed Software Development的时候,最后一个项目实现Distributed Hashtable,需要对文件名字符串进行Hash处理,用到了一个经典的ELFHash Function,特此摘录: 

public int ELFHash(String str, int number){
		int hash = 0;
		long x =0l;
		char[] array = str.toCharArray();
		for(int i=0; i<array.length; i++){
			hash = (hash << 4) + array[i];
			if((x = (hash & 0xF0000000L)) != 0){
				hash ^= (x >> 24);
				hash &= ~x;
			}
		}
		int result = (hash & 0x7FFFFFFF) % number;
		return result;
	}
 
分享到:
评论

相关推荐

    20多个常用的Hash算法C++ 实现

    Hash函数集合,包含主流的hash函数: nginx_hash算法,OpenSSL_hash算法,RSHash,JSHash,PJWHash,ELFHash,BKDRHash,DJBHash,DEKHash,APHash等等!

    常用Hash算法(C语言的简单实现)

    Hash算法是一种将任意长度的输入(也叫做预映射)通过一个特定的函数转换成固定长度输出的算法。这个输出通常称为哈希值或散列值。哈希算法在计算机科学中有广泛的应用,如数据存储、查找表、密码学、数字签名等。...

    ELF动态解析符号过程.rar_elf_hash_动态解析_符号

    本文将深入探讨ELF文件动态解析符号的过程,重点关注elf_hash算法以及动态解析中的关键步骤。 首先,让我们理解ELF文件结构。ELF文件包含头信息、程序头表和段表,这些部分定义了程序的结构和运行时行为。其中,...

    经典hash算法

    `ELFHash`函数通过左移4位、与字符相加,然后对高4位进行异或和位移操作,以此来混合哈希值。这个算法在处理英文字符时效果较好,但对于其他语言可能表现一般。 5. **BKDR哈希(Bernstein哈希)** BKDR哈希是由D. ...

    基于Heritrix的web信息抽取优化与实现 (2012年)

    主要优化手段是运用ELFHash算法实现多线程处理,增加爬取线程数以提高爬取效率。Heritrix的架构是模块化的,每个组件之间通过松耦合的方式连接,允许研究人员根据需要自行拆卸和替换,便于进行自定义开发。 在文章...

    哈希算法模拟

    对于各种哈希算法的模拟 SDBMHash; RSHash; JSHash; P. J. Weinberger Hash Function; ELF Hash Function ; BKDR Hash Function ; DJB Hash Function ; AP Hash Function;

    查找和排序算法大全_c程序

    1.程序设计(Programming)是给出解决特定问题程序的过程,是软件构造活动... static unsigned int ELFHash(char *str); /* ELF Hash Function */ static unsigned int BKDRHash(char *str); /* BKDR Hash Function */

    Java常用HASH算法总结【经典实例】

    4. RS算法hash、PJW算法、ELF算法、BKDR算法、SDBM算法、DJB算法、DEK算法、AP算法 这些算法是早期的哈希函数,它们各有特点,但通常不被现代哈希表实现所采用。例如,RS算法使用了移位和异或操作,而DJB算法...

    Hash Caculator 哈希值计算工具

    在信息技术领域,哈希(Hash)是通过特定算法将任意长度的数据转化为固定长度输出的过程。这个过程通常不可逆,即从哈希值无法还原原始数据,因此哈希值常用于存储密码、文件校验、数据完整性检查等多个场景。 哈希...

    python 实现hash 哈希算法 课程设计

    python 实现hash 哈希算法 课程设计 . 包括实现 Adler32 Chaos Machine Djb2 Elf Enigma Machine Hamming Code Luhn Md5 Sdbm Sha1 Sha256 阿德勒32 混沌机器 DJB2 小精灵 谜机 海明码 卢恩 MD...

    hash-encrypt:将几个常见的几个c++ hash加密算法改写成javascript

    关于hash-encrypt 本项目只是把几个常见的c++ hash算法转成js。这几个hash算法是: RSHash JSHash ELFHash BKDRHash SDBMHash DJBHash APHash 可以拿对应的js即可

    数据结构与算法常见问题解答

    - **ELFhash是什么意思,我看不懂**:ELFhash是一种散列函数,常用于生成散列值,其特点是计算简单且散列分布较为均匀。 - **如果中英文混编,那么读入时该如何区分呢?**:对于中英文混合的数据,可以通过正则...

    hash函数 c语言

    本文将基于“hash函数 c语言”的主题,深入探讨几种常见的哈希算法及其C语言实现,包括RSHash、JSHash、P.J.Weinberger Hash(PJWHash)、SDBMHash、ELFHash、BKDRHash、DJBHash以及APHash,这些函数旨在将任意长度...

    一些算法(美丽的小岛)

    9. **ELFHash**:一种简单的散列函数,用于将字符串映射到整数,常用于哈希表的键值计算。 10. **djb2、sdbm、lose lose**:这是几种不同的散列函数,它们各有特点,适用于不同场景,如字符串散列,快速查找等。 ...

    算法与数据结构常见问题

    - ELFhash是一种常用的散列函数,常用于操作系统等场景。它的特点是简单且具有较好的均匀性。 44. **如果中英文混编,那么读入时该如何区分呢?** - 处理中英文混编的情况时,可以根据字符编码的不同来区分中...

    ACM/ICPC模板

    --ELF Hash --MST --后缀数组(倍增实现) --手工vector类 --线段树的几个模板 数学相关 --高斯消元(用double ,c++实现) --高斯消元(用bigInteger和分数类 ,Java实现) //thanks to love8909 --矩阵运算 --欧拉函数 ...

    hash字符串函数总结

    在计算机科学中,哈希(Hash)函数是一种用于将任意长度的数据映射为固定长度输出的算法。这种输出通常称为哈希值,它在数据结构(如哈希表)、密码学、数字签名等领域有着广泛的应用。本文将对几种常见的字符串哈希...

Global site tag (gtag.js) - Google Analytics