青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

無我

讓內(nèi)心永遠(yuǎn)燃燒著偉大的光明的精神之火!
靈活的思考,嚴(yán)謹(jǐn)?shù)膶?shí)現(xiàn)
豪邁的氣魄、頑強(qiáng)的意志和周全的思考

hash函數(shù)——djb2、sdbm、lose lose

本文內(nèi)容轉(zhuǎn)自于http://www.cse.yorku.ca/~oz/hash.html。因?yàn)樗麑?duì)給出了幾個(gè)非常好的hash函數(shù),而其中的sdbm就是我們將剖析的eSNACC用的hash的原型。文章是英文的,但是通俗易懂,就摘錄在此了。

 

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.


 

djb2

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;
    }


 

sdbm

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;
    }

 

 

posted on 2012-04-26 08:52 Tim 閱讀(2666) 評(píng)論(1)  編輯 收藏 引用 所屬分類: C/C++語言

評(píng)論

# re: hash函數(shù)——djb2、sdbm、lose lose[未登錄] 2012-04-27 09:35 Tina

頂!  回復(fù)  更多評(píng)論   

<2012年4月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

導(dǎo)航

統(tǒng)計(jì)

公告

本博客原創(chuàng)文章,歡迎轉(zhuǎn)載和交流。不過請(qǐng)注明以下信息:
作者:TimWu
郵箱:timfly@yeah.net
來源:m.shnenglu.com/Tim
感謝您對(duì)我的支持!

留言簿(9)

隨筆分類(173)

IT

Life

搜索

積分與排名

最新隨筆

最新評(píng)論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            国产午夜精品在线观看| 欧美一区二区三区免费大片| 亚洲亚洲精品在线观看| 亚洲美女中出| 亚洲毛片播放| 亚洲午夜视频在线| 欧美一区二区三区四区视频| 久久久精品一区二区三区| 久久免费视频观看| 亚洲电影欧美电影有声小说| 亚洲人成毛片在线播放| 一区二区高清在线| 性一交一乱一区二区洋洋av| 久热精品视频| 欧美日韩中文字幕在线视频| 国产三区二区一区久久| 亚洲区在线播放| 亚洲自拍偷拍视频| 蜜臀a∨国产成人精品| 亚洲人成欧美中文字幕| 亚洲欧美中日韩| 欧美激情按摩| 国产主播一区二区三区四区| 99香蕉国产精品偷在线观看| 欧美专区在线| 日韩特黄影片| 久久五月婷婷丁香社区| 国产精品免费小视频| 亚洲欧洲免费视频| 欧美在线播放| 亚洲毛片在线| 久久一区二区视频| 国产精品日韩精品欧美精品| 在线免费观看日本一区| 久久精品国产亚洲一区二区| 99精品国产福利在线观看免费 | 一区二区三区在线观看欧美| 这里只有精品电影| 免费观看一区| 欧美一区午夜精品| 欧美69wwwcom| 午夜视频久久久| 欧美四级在线观看| 亚洲精品一区二区三| 美女日韩在线中文字幕| 欧美一区在线视频| 国产伦精品一区二区三区四区免费| 亚洲精选91| 欧美大片免费观看在线观看网站推荐 | 欧美日韩三级视频| 亚洲日本激情| 亚洲大胆人体视频| 久久五月婷婷丁香社区| 伊人成人开心激情综合网| 久久国产精品72免费观看| 在线午夜精品| 国产精品久久久久婷婷| 亚洲欧美日韩在线高清直播| 一本色道久久88亚洲综合88| 欧美日韩综合在线免费观看| 99国产精品99久久久久久粉嫩| 欧美激情国产高清| 欧美二区视频| 99精品热6080yy久久| 99国产精品国产精品毛片| 欧美日韩国产一级| 日韩视频在线观看一区二区| 亚洲精品一区二区三区不| 欧美激情国产精品| 亚洲一区二区三区精品视频| 亚洲专区在线| 国内精品久久久久久| 久久综合九色九九| 老色鬼久久亚洲一区二区| 91久久国产综合久久蜜月精品| 亚洲欧洲在线看| 欧美肉体xxxx裸体137大胆| 午夜精品久久久久久99热| 国产精品一区二区三区四区| 久久国产精品久久久久久电车 | 欧美日韩在线一区二区| 亚洲一区在线免费| 欧美诱惑福利视频| 亚洲国产一区二区三区在线播 | 久久精品成人| 久久久噜噜噜久久久| 亚洲精品资源| 亚洲综合999| 亚洲激情网站| 亚洲视频一区在线观看| 在线高清一区| 亚洲无玛一区| 亚洲国产精品激情在线观看 | 亚洲第一综合天堂另类专| 亚洲少妇诱惑| 欧美一区二区播放| 日韩一二三区视频| 欧美一区二区网站| 中国日韩欧美久久久久久久久| 午夜久久电影网| 亚洲美女av电影| 欧美一区成人| 亚洲午夜一级| 麻豆免费精品视频| 欧美有码在线视频| 欧美日韩亚洲一区二区三区在线 | 亚洲精品小视频在线观看| 亚洲香蕉网站| 日韩午夜av| 久久久久一区| 欧美综合二区| 欧美性猛交一区二区三区精品| 欧美激情第三页| 黄色成人在线| 亚洲你懂的在线视频| 99亚洲视频| 欧美jjzz| 蜜臀91精品一区二区三区| 国产欧美三级| 亚洲一区二区精品在线观看| 日韩视频三区| 欧美成人视屏| 欧美jizzhd精品欧美巨大免费| 国产日韩精品久久| 亚洲视频狠狠| 中文精品在线| 欧美日韩在线三级| 亚洲理论在线观看| 日韩视频在线一区| 欧美成人蜜桃| 亚洲福利在线观看| 亚洲国产欧美国产综合一区| 久久久人人人| 久久亚洲精品欧美| 韩国免费一区| 久久精品亚洲国产奇米99| 久久久999成人| 国产在线精品一区二区夜色| 午夜一区不卡| 久久久久久久波多野高潮日日| 国产视频一区免费看| 久久电影一区| 欧美成人69av| 91久久嫩草影院一区二区| 欧美国产日韩在线| 妖精视频成人观看www| 亚洲午夜av电影| 国产精品日韩在线观看| 先锋a资源在线看亚洲| 久久久久综合网| 亚洲国产日韩欧美综合久久| 欧美激情日韩| 国产精品99久久久久久宅男 | 亚洲久久成人| 亚洲欧美日本日韩| 欧美亚洲免费| 亚洲国产欧美一区二区三区丁香婷| 老司机午夜精品视频在线观看| 欧美激情一区二区三区在线| 亚洲日本欧美在线| 欧美性大战久久久久| 久久精品道一区二区三区| 亚洲成色777777女色窝| 亚洲一区久久| 好看的日韩av电影| 欧美日韩国产在线观看| 亚洲欧美日韩国产成人| 欧美成人四级电影| 亚洲欧美日韩精品久久奇米色影视| 国产综合精品| 欧美—级a级欧美特级ar全黄| 亚洲视屏一区| 欧美国产日韩一区二区在线观看| 亚洲天堂网站在线观看视频| 国产日韩欧美一区二区三区在线观看| 久久网站热最新地址| 亚洲视频在线观看一区| 欧美mv日韩mv国产网站app| 亚洲一区二区在线免费观看| 在线看欧美视频| 国产乱人伦精品一区二区 | 亚洲愉拍自拍另类高清精品| 欧美1区2区视频| 欧美尤物巨大精品爽| 亚洲精品美女久久7777777| 国产亚洲一区精品| 欧美三级不卡| 欧美xx视频| 久久噜噜亚洲综合| 亚洲欧美一区二区三区在线| 亚洲乱码国产乱码精品精天堂| 久久综合给合久久狠狠色| 亚洲欧美资源在线| 一本大道久久精品懂色aⅴ | 亚洲国产精品高清久久久| 国产字幕视频一区二区| 国产精品日日摸夜夜摸av| 欧美日韩一区二区三区| 欧美成人精品激情在线观看| 久久精品国产精品亚洲精品|