社区
其它技术问题
帖子详情
有谁知道好的字符串hash算法,把字符串映射为32位的数
NosicLin
2012-02-23 09:58:38
因为最近在一个软件中遇到一个问题,该软件需要频繁有的字符串比较,所以想找一个hash算法把字符串映射为一个32位的数,加速字符串的比较。
...全文
467
5
打赏
收藏
有谁知道好的字符串hash算法,把字符串映射为32位的数
因为最近在一个软件中遇到一个问题,该软件需要频繁有的字符串比较,所以想找一个hash算法把字符串映射为一个32位的数,加速字符串的比较。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
NosicLin
2012-02-25
打赏
举报
回复
[Quote=引用 3 楼 rabbitlbj 的回复:]
如果重用率很高的话LZ直接效仿编译器存放文字常量的方式吧
[/Quote]
你这句提醒了我,刚才都没有反应过本,谢了哈,存文字常量,用地址来比较,这个方法不错。
NosicLin
2012-02-25
打赏
举报
回复
[Quote=引用 3 楼 rabbitlbj 的回复:]
如果重用率很高的话LZ直接效仿编译器存放文字常量的方式吧
[/Quote]
文字常量主要用于重用率高的字符串,在静态语言中,不会引入新的字符串的情况下,效果会很好,但是这次要做的字符串事先不能确定。
RabbitLBJ
2012-02-25
打赏
举报
回复
如果重用率很高的话LZ直接效仿编译器存放文字常量的方式吧
NosicLin
2012-02-25
打赏
举报
回复
[Quote=引用 1 楼 taodm 的回复:]
md5还差不多。hash的碰撞还是太高了
[/Quote]
md5我也考虑过,md5虽然冲突小,但是需要16字节来存储,而字符串的平均长度也才十多个字节,相比起来,对于效率没有什么明虽提升。
taodm
2012-02-23
打赏
举报
回复
md5还差不多。hash的碰撞还是太高了
最快的排序
算法
最快的内容查找
算法
-----暴雪的
Hash
算法
,排序
算法
数
据结构
最快的排序
算法
最快的内容查找
算法
-----暴雪的
Hash
算法
,排序
算法
数
据结构
字符串
hash
算法
,附图片理解
字符串
hash
算法
字符串
hash
是指将一个
字符串
s
映射
为一个,使得该整
数
可以尽可能唯一的代表也就是唯一标识。换言之,如果两个字符的
hash
值相同那么我们可以认为两者相同。 如果,我们对字母a~z进行一些的处理(如上图),但是aba的
hash
值和baa的
hash
值是一样的,这样子不可以唯一区分。 我们就要想办法将这个
hash
值变为唯一区分的 这个图前面序列之和*8等于后面序列之和。 重点来了: 我们通过乘以某个
数
字不断增大。某一个段相同序列必定是相同一段的倍
数
。 只要
知道
这个倍
数
就
知道
了这个序列是不
字符串
hash
算法
感觉没找到什么例题,但也是一个重要的思考方式,复杂度O(1)。 经典问题:如果有一个庞大的
字符串
数
组,然后给你一个单独的
字符串
,让你从这个
数
组中查找是否有这个
字符串
并找到它。
字符串
hash
是指将一个
字符串
s
映射
为一个,使得该整
数
可以尽可能唯一的代表也就是唯一标识。换言之,如果两个字符的
hash
值相同那么我们可以认为两者相同。
字符串
hasn函
数
有很多种,下面这篇博客有做比较: 各种
字符串
Hash
函
数
比较 总而言之,反而简单的BKDR
Hash
无论是在实际效果还是编码实现中,效果都是最突出的,一般也只讲这种。
ELF
Hash
字符串
Hash
算法
字符串
Hash
无论是在ACM竞赛中还是在工程中都有着广泛的应用,所以很有必要掌握好它的用法。主要分为两个部 分:
Hash
映射
和冲突处理。而本文主要来详细讲解
Hash
映射
的方法及应用,下篇文章将会介绍如何处理冲突。 对于
字符串
Hash
来说都是把
字符串
映射
为一个整
数
,这一步是通过
Hash
函
数
来进行的。常用的
Hash
函
数
具体有: SDBM
Hash
,RS
Hash
,JS
Hash
,ELF
Hash
,
字符串
HASH
:判断子串
字符串
HASH
:判断子串 文章目录
字符串
HASH
:判断子串
字符串
HASH
问题:思路:代码:
字符串
HASH
字符串
HASH
,顾名思义,就是将不同
字符串
映射
成不同
数
字。
字符串
HASH
是一个既简单又好写,适用性相当广泛的
算法
。
字符串
HASH
可以替代KMP
算法
(
字符串
模式匹配)、马拉车
算法
(找回文串)等 我们
知道
,将不同
字符串
映射
成不同
数
字并不是一件难事,但如果单独地把一个串
映射
成
数
字而不能获得这个串的子串的信息,那么这种
映射
是低端的。如果能够将一个
字符串
HASH
的同时方便的调取其子串的
HASH
值,
其它技术问题
3,882
社区成员
9,045
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章