Hash算法--[murmurhash2算法 和 DJB Hash算法]
2016-06-14 00:00
876 查看
摘要: murmurhash2算法 和 DJB Hash算法是目前最流行的hash算法
目前比较流行的两种HASH算法,冲突概率较小
1. DJB hash算法
[code=language-cpp]/* the famous DJB Hash Function for strings */ unsigned int DJBHash(char *str) { unsigned int hash = 5381; while (*str){ hash = ((hash << 5) + hash) + (*str++); /* times 33 */ } hash &= ~(1 << 31); /* strip the highest bit */ return hash; }
2.murmurhash2
(摘自nginx系统源码)[code=plain]uint32_t murmur_hash2(char *data, size_t len) { uint32_t h, k; h = 0 ^ len; while (len >= 4) { k = data[0]; k |= data[1] << 8; k |= data[2] << 16; k |= data[3] << 24; k *= 0x5bd1e995; k ^= k >> 24; k *= 0x5bd1e995; h *= 0x5bd1e995; h ^= k; data += 4; len -= 4; } switch (len) { case 3: h ^= data[2] << 16; case 2: h ^= data[1] << 8; case 1: h ^= data[0]; h *= 0x5bd1e995; } h ^= h >> 13; h *= 0x5bd1e995; h ^= h >> 15; return h; }
目前比较流行的两种HASH算法,冲突概率较小
相关文章推荐
- Masonry的使用
- iOS 中只 导两边圆角的UIButton
- http://www.codeweblog.com/15个初学者必看的基础sql查询语句/
- 无法加载此图片
- xcode实用快捷键
- Dockerfile 笔记
- 更新pod软件本身版本
- Could not insert new outlet connection
- 横竖屏适配问题
- PyCharm 使用SVN 管理代码
- PHP处理微信中带Emoji表情的消息发送和接收(Unicode字符转码编码)
- 对transition,transform,animation的疑惑
- Linux命令scp
- Java JUC之Atomic系列12大类实例讲解和原理分解
- 简述synchronized和java.util.concurrent.locks.Lock的异同
- ThreadLocal实现方式&使用介绍
- iphone5s如何省电?耗电费电如何处理?iphone5s耗电费电解决方法
- 双城记
- bootstrap 表格插件bootstrap-table的使用
- 集合(四): Map