`
dsea
  • 浏览: 44541 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

字符串的哈希处理函数

 
阅读更多

在算法精解这本书上看到一个字符串哈希处理函数,知其然不知其所以然,仅记下以作备用

 

 

unsigned int hash(const void* key)
{
	const char* ptr;
	unsigned int val;

	val = 0;
	ptr = key;

	while(*ptr != '\0')
	{
		unsigned int tmp;
		val = (val << 4) + (*ptr);

		if(tmp = (val & 0xf0000000))
		{
			val = val ^ (tmp >> 24);
			val = val ^ tmp;
		}

		ptr++;
	}

	return val % HASH_TABLE_SIZE;
}
分享到:
评论

相关推荐

    用C语言实现常用的字符串哈希函数

    用C语言实现常用的字符串哈希函数,比如RSHash、JSHash、PJWHash、FNVHash等

    字符串哈希函数设计

    通过以上讨论,我们可以看出,设计一个高效的字符串哈希函数并非易事,它需要综合考虑哈希函数的特性、计算效率以及冲突处理策略。使用斐波那契函数思想可能提供一种新的视角,但在实际应用中还需要根据具体场景进行...

    字符串哈希成数字的C实现的代码(含测试)

    将字符串哈希成数字的几种经典的方法:其中的一部分 #ifndef INCLUDE_GENERALHASHFUNCTION_C_H #define INCLUDE_GENERALHASHFUNCTION_C_H #include typedef unsigned int (*hash_function)(char*, unsigned int...

    几个经典的字符串哈希函数及测试.rar

    字符串哈希函数是计算机科学中一个重要的数据结构和算法,主要用于快速查找和处理字符串。哈希函数将一个字符串转换为一个固定大小的数值,这个数值称为哈希值。哈希函数的设计目标是使得不同的字符串得到不同的哈希...

    主流字符串哈希算法简明介绍及实例代码

    字符串哈希算法是哈希算法中的一种特殊类型,专门用于处理字符串类型的数据。在本文中,我们将介绍一些主流的字符串哈希算法,并提供实例代码。 经典字符串 Hash 函数 在实际开发中,我们经常需要使用哈希函数来...

    hash字符串函数总结

    本文将对几种常见的字符串哈希函数进行总结。 1. **SDBM Hash Function**: SDBM Hash(Simple Database Manipulation)是由Peter J. Weinberger设计的一种快速哈希函数。它的核心思想是每次迭代时将当前字符与上...

    暴雪字符串哈希.txt

    dwHashType = 0时计算的哈希值用于确定字符串在哈希表中的位置; dwHashType = 1,dwHashType = 2时计算的哈希值用于验证字符串 返回值:字符串的哈希值 */ unsigned long HashString(char *lpszString, ...

    哈希函数解决字符串问题

    本文档主要介绍了一种通过哈希函数处理字符串问题的方法,并具体应用到了一个特定场景:计算一个字符串在一个旋转矩阵中的出现次数。该方法的核心在于利用了三个不同的哈希值来确保结果的准确性与效率。 #### 基本...

    字符串的哈希Key算法

    字符串哈希Key算法是计算机科学中一种用于快速查找和存储字符串的重要技术。它通过将字符串转化为固定长度的数值,即哈希值,使得在大量数据中查找特定字符串变得高效。这种算法广泛应用于数据库索引、缓存系统、...

    哈希函数的应用(数据结构课程设计)

    哈希函数是一种将输入值(通常是字符串或数字)映射到固定长度的输出值的函数。哈希函数的输出值称为哈希值或哈希码。哈希函数的主要特点是,它可以将不同的输入值映射到不同的输出值,从而实现快速的查找和存储。 ...

    PB字符串加密、解密函数

    在IT行业中,字符串加密与解密是信息安全领域的重要组成部分,主要目的是保护数据的隐私和安全性。PowerBuilder(PB)是一种流行的编程环境,尤其在开发数据库应用程序时被广泛使用。在这个背景下,PB字符串加密和...

    TLSH一个生成字符串哈希的JavaScript库

    标题中的“TLSH一个生成字符串哈希的JavaScript库”指的是TLSH(Tangram Locality Sensitive Hashing),这是一个用于创建字符串哈希的算法,特别适用于检测文本或数据的相似性。在JavaScript环境下,TLSH库允许...

    C语言写的一些字符串处理函数,包括连接,查找重复字符和获取字符串长度

    下面我们将深入探讨这些自定义的字符串处理函数。 首先,连接字符串是一项常见的任务,可以使用`strcat`函数来完成,但这里可能是指实现了自定义的字符串连接功能。自定义`str_concat`函数通常需要动态地分配内存,...

    字符串统计函数,统计不同字符个数和每个字符出现的次数

    字符串统计函数就是用于处理这类任务的重要工具。本篇将详细探讨如何实现一个统计字符串中不同字符个数以及每个字符出现次数的函数,我们将以C++语言为例进行讲解。 首先,我们需要了解基本的字符串处理函数和数据...

    ACM-字符串处理专练

    7. **字符串哈希**:哈希函数可以快速地对字符串进行求值,如Rabin-Karp哈希,用于快速检测两个字符串是否相等。FNV(Fowler-Noll-Vo)哈希和DJB2哈希也是常见的字符串哈希算法。 8. **Manacher's Algorithm**:...

    哈希函数解决字谜问题

    哈希函数在信息技术领域中扮演着重要的角色,尤其在处理字符串问题时,它的高效性和唯一性使得它成为解决复杂问题的利器。在这个特定的问题中,我们面临的是如何利用哈希值来解决字谜问题,即给定一部分字符串,我们...

    PHP 字符串函数总结

    14. `md5()` 和 `sha1()` 是常用的哈希函数,可以对字符串进行加密,如`md5("password")` 和 `sha1("password")` 会返回一个唯一的哈希值。 15. `preg_match()` 和 `preg_replace()` 支持正则表达式匹配和替换,...

    C语言基础面试题(03-字符串函数).docx

    - **问题10**: 统计字母出现次数,遍历字符串,用哈希表记录每个字母的数量。 - **问题11**: 字符串过滤,遍历字符串,只保留第一个出现的字符。 - **问题12**: 排序网络接口,可以使用字符串比较函数对数组进行...

    字符串hash算法比较

    2. OpenSSL中的字符串哈希函数: OpenSSL提供了两种不同的哈希函数。第一种(lh_strhash)基于简单的位操作,适用于短字符串。第二种(lh_strhash,注释中提到的MD5版本)则使用MD5加密哈希算法,虽然能提供更好的...

Global site tag (gtag.js) - Google Analytics