- 浏览: 308344 次
- 性别:
- 来自: 大连
文章分类
- 全部博客 (272)
- java (42)
- c (49)
- 算法 (29)
- 汇编语言 (3)
- 字符集 (3)
- error (3)
- 搜索引擎 (2)
- 互联网 (18)
- linux (12)
- 网络 (20)
- VMWare (1)
- 面试 (7)
- c++ (55)
- 设计模式 (3)
- db (9)
- office (2)
- FS (1)
- rest (3)
- Ajax (2)
- Spring (2)
- Hibernate (3)
- matlab (1)
- load balancing (8)
- 分布式计算 (2)
- 易语言 (1)
- apache tomcat (1)
- 测试 (1)
- 数据结构 (5)
- 数学 (13)
- 服务器 (9)
- 读后感 (4)
- 好书介绍 (1)
- script (3)
- wordpress (2)
- delphi (21)
- pascal (8)
- xml (3)
- 趣味 (1)
- PHP (3)
- python (13)
- DLL (4)
- openGL (8)
- windows (2)
- QT (28)
- django (7)
- jquery (1)
- 数据挖掘 (7)
- nginx (1)
- js (1)
- mac (1)
- hadoop (3)
- 项目管理 (1)
- 推荐系统 (1)
- html (1)
最新评论
-
晴天1234:
related remove:attention.ibus和u ...
UBUNTU的默认root密码是多少,修改root密码 -
美丽的小岛:
美丽的小岛 写道如上配置好就得了。提示没有OpenGl.dll ...
OpenGL学习入门之VS2010环境配置 [转] -
美丽的小岛:
如上配置好就得了。提示没有OpenGl.dll之类的,再增加入 ...
OpenGL学习入门之VS2010环境配置 [转] -
美丽的小岛:
主要是理清哪两个对象之间的关系,是信号与所有槽的关系或者是槽与 ...
QT之DisConnect -
美丽的小岛:
LPCTSTR类型:L表示long指针 这是为了兼容Windo ...
QString与各种字符串之间的转化
Hash Functions
A comprehensive collection of hash functions, a hash visualiser and some test results [see Mckenzie et al. Selecting a Hashing Algorithm, SP&E 20(2):209-224, Feb 1990] will be available someday. If you just want to have a good hash function, and cannot wait, djb2 is one of the best string hash functions i know. it has excellent distribution and speed on many different sets of keys and table sizes. you are not likely to do better with one of the "well known" functions such as PJW, K&R[1], etc. Also see tpop pp. 126 for graphing hash functions.
this algorithm (k=33) was first reported by dan bernstein many years ago in comp.lang.c. another version of this algorithm (now favored by bernstein) uses xor: hash(i) = hash(i - 1) * 33 ^ str[i]; the magic of number 33 (why it works better than many other constants, prime or not) has never been adequately explained.
unsigned long hash(unsigned char *str) { unsigned long hash = 5381; int c; while (c = *str++) hash = ((hash << 5) + hash) + c; /* hash * 33 + c */ return hash; }
this algorithm was created for sdbm (a public-domain reimplementation of ndbm) database library. it was found to do well in scrambling bits, causing better distribution of the keys and fewer splits. it also happens to be a good general hashing function with good distribution. the actual function is hash(i) = hash(i - 1) * 65599 + str[i]; what is included below is the faster version used in gawk. [there is even a faster, duff-device version] the magic constant 65599 was picked out of thin air while experimenting with different constants, and turns out to be a prime. this is one of the algorithms used in berkeley db (see sleepycat) and elsewhere.
static unsigned long sdbm(str) unsigned char *str; { unsigned long hash = 0; int c; while (c = *str++) hash = c + (hash << 6) + (hash << 16) - hash; return hash; }
lose lose
This hash function appeared in K&R (1st ed) but at least the reader was warned: "This is not the best possible algorithm, but it has the merit of extreme simplicity." This is an understatement; It is a terrible hashing algorithm, and it could have been much better without sacrificing its "extreme simplicity." [see the second edition!] Many C programmers use this function without actually testing it, or checking something like Knuth's Sorting and Searching, so it stuck. It is now found mixed with otherwise respectable code, eg. cnews. sigh. [see also: tpop]
unsigned long hash(unsigned char *str) { unsigned int hash = 0; int c; while (c = *str++) hash += c; return hash; }来自:http://www.cse.yorku.ca/~oz/hash.html
发表评论
-
vs2008【断点无效】解决方法
2015-04-13 10:05 785有时候,我们在用vs2008调试的时候,会出现断点无效。如下 ... -
C++模板之特化与偏特化详解
2015-01-07 14:44 832转自:http://www.jb51.net/a ... -
c++中的typename与class<转>
2015-01-07 08:51 828在泛型编程的形参表中,关键字typename和class具有 ... -
traits:Traits技术初探
2015-01-06 12:49 798概述:traits是一种特性萃取技术,它在Generic ... -
POD型别
2015-01-06 12:37 767POD全称Plain Old Data。通俗的讲,一个类或结 ... -
c++核心基础知识(内存管理)
2015-01-04 22:22 703内存管理是C++最令人切 ... -
内存分配器<转>
2015-01-04 22:07 1385题记:内存管理一直 ... -
operator new在C++中的各种写法
2015-01-04 19:27 1204http://blog.sina.com.cn/s/blo ... -
可变参数va_list
2014-12-26 17:45 8791.要在函数中使用参数,首先要包含头文件<stdarg ... -
Apriori算法
2014-12-15 12:56 667http://blog.csdn.net/lizhengn ... -
map注意的两个问题
2014-12-11 14:21 640代码1 void main() { ... -
关于C++ const 的全面总结<转>
2014-11-14 12:56 758C++中的const关键字的用法非常灵活,而使用const ... -
C++DLL编程详解
2014-10-08 19:44 1650DLL(Dynamic Link Library)的 ... -
C++&&QT调试时出现的一些错误
2014-10-08 15:14 787错误 原因 解决 ... -
【转】C++ function、bind以及lamda表达式
2014-09-11 09:42 877本文是C++0x系列的第四篇,主要是内容是C++0x中新增 ... -
STL函数对象及函数对象适配器【转】
2014-09-10 09:24 493一 函数对象Functor STL中提供了一元和 ... -
typedef和typename关键字[转]
2014-09-10 09:21 6891、类型说明typedef 类型说明的格式为: type ... -
C/C++中extern关键字详解[转]
2014-09-09 11:38 5051 基本解释:extern可以置于变量或者函数前,以标示变量 ... -
MYSQL在C—API 中可用的函数
2014-08-24 23:03 606mysql_affected_rows() 返 ... -
编辑距离算法
2014-08-14 00:02 975字符串编辑距离: 是一种字符串之间相似度计算的方法。给定两个 ...
相关推荐
djb2a 非加密哈希函数安装$ npm install djb2a用法import djb2a from 'djb2a' ;djb2a ( ':unicorn::rainbow:' ) ;//=> 1484783307 它以正整数形式返回哈希值。有关的 -FNV-1a非加密哈希函数 -SDBM非加密哈希函数
sdbm 非加密哈希函数安装$ npm install sdbm用法import sdbm from 'sdbm' ;sdbm ( ':unicorn::rainbow:' ) ;//=> 4053542802 它以正整数形式返回哈希值。有关的 -FNV-1a非加密哈希函数 -DJB2a非加密哈希函数
这个包使用或可能会在未来的 ECMAScript 6 特性中使用。 在兼容的环境中使用它,...标准化 djb2示例用法: var ndjb2 = require ( 'ndjb2' ) , foo = ndjb2 ( 'bar' ) ;console . log ( foo ) ; // 0.04504971066489816
一个预算速度很快的hash运算,只需要输入文件路径就能计算出hash值。
Cocoa 提供了 CRC32、CRC64、GCRC、RS、JS、PJW、ELF、BKDR、SBDM、DJB、DJB2、BP、FNV、FNV1a、AP、BJ1、MH2、SHA1、SFH 的接口。 可可很小。 仅标题。 Cocoa 是跨平台的。 没有依赖性。 Cocoa 是 zlib/libpng ...
《建筑工程常用表格2021工程暂停令DJB-B2.doc》是建筑工程中一个重要的管理工具,主要用于在项目进程中因特定原因需要暂时停止施工时,由相关管理单位向承包单位发出的通知。这份文档的使用与建筑工程的法规、合同...
【标题】"phpMemcachedAdmin_1djb06_V2_京东_phpmemcachedadmin_" 指的是一款基于PHP编写的Memcached管理工具,主要用于监控和管理Memcached服务器。"V2"代表这是该工具的第二个主要版本,通常意味着在功能、性能或...
2. **表单内容详解**: - **表号DJB-B6**:这是表格的特定编号,便于管理和识别不同的工程文档。 - **工程名称**:填写具体工程的名称,便于关联到对应的工程项目。 - **编号**:每个报审表的唯一标识,便于跟踪...
输出, hash : 哈希值,0 到 2^32-1 之间的整数值type : 类型有“djb2”(默认)或“sdbm” 从 c 代码: http : //www.cse.yorku.ca/~oz/hash.html djb2 这个算法是多年前由 dan Bernstein 首次报道的在 comp.lang....
zedo-shim 在编程时,我经常需要更好的构建系统。 但是,我想到的系统zedo是djb redo的变体zedo并... git clone <repository>cd <repository>git submodule update --init zedo-shimexport PATH+=":$PWD/zedo-shim/b
python 实现hash 哈希算法 课程设计 . ... Djb2 Elf Enigma Machine Hamming Code Luhn Md5 Sdbm Sha1 Sha256 阿德勒32 混沌机器 DJB2 小精灵 谜机 海明码 卢恩 MD5 安全数据库 沙1 沙256
本篇文章将详细介绍几个经典的字符串哈希函数,包括SDBM、RS、JS、BKDR和DJB以及AP哈希。 1. **SDBM哈希**: SDBM哈希是由Dan Brickley设计的一种简单而有效的哈希函数,其计算公式为: ```c hash = c * hash + ...
建筑工程常用表格2021项目监理大事记DJB-B11.doc
建筑工程常用表格2021监理工程师通知单DJB-B1.doc
DJB-823电接触固体保护膜点滴分析法是一种特殊的分析技术,该技术在航天、航空、海洋、电子工业、兵器工业和机械工业等众多领域中得到了广泛应用,并且带来了显著的经济效益。DJB-823是一种人工合成的保护剂,该保护...
10. **djb2、sdbm、lose lose**:这是几种不同的散列函数,它们各有特点,适用于不同场景,如字符串散列,快速查找等。 11. **哈希函数实现**:哈希函数用于将数据快速映射到固定大小的桶,减少冲突。这里讨论了...
在C++中,我们可以使用标准库中的 `<cstdlib>` 和 `<ctime>` 头文件来生成随机数,`<fstream>` 头文件用于文件操作,`<unordered_set>` 或 `<map>` 作为哈希数据结构。下面是一些可能的实现细节: 1. **初始化**:...