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

無我

讓內(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
來源:www.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| 亚洲精品视频在线播放| 亚洲日本中文字幕| 欧美福利视频网站| 亚洲免费在线视频| 久久久久国产精品一区三寸| 亚洲国产美国国产综合一区二区| 亚洲电影第1页| 国产精品久久久久9999高清 | 国产最新精品精品你懂的| 欧美a级片网| 欧美日韩色婷婷| 久久精品免费观看| 欧美大片第1页| 性做久久久久久免费观看欧美| 久久国产精品一区二区三区四区| 亚洲精品国久久99热| 亚洲免费在线播放| 亚洲激情二区| 午夜视频一区二区| 夜夜嗨av一区二区三区中文字幕 | 亚洲高清免费在线| 在线一区观看| 亚洲人妖在线| 久久福利电影| 午夜日本精品| 欧美男人的天堂| 蜜桃久久av| 国产日韩精品一区二区浪潮av| 欧美成人精品一区二区| 国产精品美女久久久久久2018 | 一区二区三区精品久久久| 欧美一区成人| 亚洲一区尤物| 欧美精品九九99久久| 久久一区二区视频| 国产欧美1区2区3区| 亚洲人成在线免费观看| 在线观看av一区| 性久久久久久久久| 亚洲欧美日韩国产成人精品影院| 欧美成人伊人久久综合网| 久久久久网址| 国产亚洲aⅴaaaaaa毛片| 一本色道**综合亚洲精品蜜桃冫 | 亚洲香蕉视频| 欧美精品一区二区三区蜜桃 | 午夜亚洲精品| 亚洲免费影视第一页| 欧美日韩综合在线| 亚洲日本中文字幕区| 亚洲国产精品一区二区www在线| 欧美一区二区观看视频| 欧美亚洲一级| 国产精品亚洲一区二区三区在线| 日韩视频永久免费观看| 亚洲精品综合久久中文字幕| 老鸭窝毛片一区二区三区| 久久一区二区三区四区| 极品尤物久久久av免费看| 欧美亚洲视频在线观看| 久久九九有精品国产23| 国产伦精品一区二区三区高清版| 亚洲视频免费观看| 欧美一区二区免费| 国产欧美日韩在线| 欧美中文在线观看| 欧美波霸影院| 亚洲国产精品成人精品| 欧美电影资源| 亚洲免费观看高清完整版在线观看熊| 亚洲免费激情| 国产精品国产三级国产专播品爱网| 在线亚洲电影| 久久久999国产| 亚洲福利精品| 欧美一区深夜视频| 国产精品一区二区三区久久久| 欧美伊人久久久久久午夜久久久久| 久久久精品五月天| 最新日韩在线| 欧美午夜精品久久久久久人妖| 亚洲一区二区三区在线| 久久婷婷国产综合精品青草 | 国产亚洲电影| 狂野欧美激情性xxxx| 亚洲理论电影网| 久久国产精品色婷婷| 亚洲国产一区二区视频| 欧美日韩中文字幕| 欧美在线影院| 亚洲免费av观看| 久久在线91| 亚洲一区二区三区视频播放| 国产伪娘ts一区| 欧美精品久久久久久久免费观看 | 欧美在线观看网址综合| 亚洲成色777777女色窝| 亚洲欧美激情精品一区二区| 韩国三级电影一区二区| 欧美色视频在线| 玖玖玖国产精品| 亚洲自拍电影| 亚洲精品久久久久久久久久久| 欧美在线视频播放| 一区二区三区 在线观看视频 | 欧美视频在线观看 亚洲欧| 久久久国产精品亚洲一区 | 美女成人午夜| 久久福利毛片| 亚洲一区二区三区免费观看| 亚洲国产欧美一区二区三区久久 | 欧美成人伊人久久综合网| 欧美一区二区大片| 亚洲午夜黄色| 亚洲另类在线一区| 亚洲韩国日本中文字幕| 乱中年女人伦av一区二区| 亚洲欧美日韩中文在线制服| 亚洲精品四区| 亚洲高清一区二| 国产一区二区丝袜高跟鞋图片| 国产精品进线69影院| 欧美日韩系列| 欧美人与性禽动交情品 | 久久久久国产精品麻豆ai换脸| 亚洲欧美日韩成人| 亚洲视频在线观看| 野花国产精品入口| 亚洲美女区一区| 亚洲精品一区二区三区蜜桃久| 欧美国产欧美亚洲国产日韩mv天天看完整| 久久国产精品99久久久久久老狼 | 亚洲一区二区三区四区在线观看 | 伊人久久亚洲影院| 韩国av一区二区三区在线观看| 国产亚洲毛片在线| 国产一区二区高清| 国产曰批免费观看久久久| 国产日韩欧美麻豆| 国产视频亚洲精品| 国内精品久久久久久影视8| 国产一区二区三区高清在线观看 | 欧美日韩1区2区3区| 欧美精品在线视频观看| 欧美日韩第一区日日骚| 欧美日本三级| 国产精品你懂的在线| 国产女精品视频网站免费| 国模叶桐国产精品一区| 一区二区三区亚洲| 亚洲破处大片| 宅男噜噜噜66一区二区| 亚洲欧美成人在线| 欧美中日韩免费视频| 玖玖玖免费嫩草在线影院一区| 久久综合色一综合色88| 亚洲第一黄色| 这里是久久伊人| 欧美在线二区| 欧美高清一区二区| 国产精品久久久久久模特| 国产在线精品一区二区夜色| 在线看成人片| 亚洲永久字幕| 欧美69视频| 国产精品99久久久久久www| 欧美在线不卡视频| 欧美久久久久久久| 国产一区二区精品| 99re成人精品视频| 久久精品日产第一区二区三区| 欧美激情第六页| 亚洲影院污污.| 欧美激情一区二区三区在线| 国产精品羞羞答答| 亚洲欧洲日夜超级视频| 欧美亚洲三区| 亚洲国产一区二区三区在线播 | 日韩午夜在线| 久久久夜精品| 国产精品一页| 亚洲巨乳在线| 久久中文久久字幕| 亚洲免费视频网站| 欧美人体xx| 亚洲国产精品ⅴa在线观看| 先锋影音久久久| 亚洲人成网站影音先锋播放| 欧美一区二区性| 欧美日韩免费一区二区三区视频| 尤物在线精品| 欧美一级在线亚洲天堂| 日韩视频在线观看免费| 欧美成人精品一区| ●精品国产综合乱码久久久久| 欧美在线91| 亚洲永久精品大片|