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

無我

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

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

本文內(nèi)容轉(zhuǎn)自于http://www.cse.yorku.ca/~oz/hash.html。因為他對給出了幾個非常好的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) 評論(1)  編輯 收藏 引用 所屬分類: C/C++語言

評論

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

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

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

導(dǎo)航

統(tǒng)計

公告

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

留言簿(9)

隨筆分類(173)

IT

Life

搜索

積分與排名

最新隨筆

最新評論

閱讀排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久成人羞羞网站| 亚洲欧美电影院| 欧美二区不卡| 999在线观看精品免费不卡网站| 亚洲高清在线观看一区| 久久午夜精品一区二区| 91久久国产自产拍夜夜嗨| 亚洲国产女人aaa毛片在线| 欧美日韩精品一区二区在线播放 | 在线观看日韩国产| 欧美激情网站在线观看| 欧美日韩精品免费观看视一区二区 | 亚洲人成网站在线观看播放| 亚洲看片一区| 国产日产欧产精品推荐色| 蜜臀av性久久久久蜜臀aⅴ| 欧美日韩一区二区在线播放| 久久精选视频| 欧美激情一二三区| 久久精品综合| 欧美日韩情趣电影| 久久综合电影| 国产精品久久久久久久久久直播| 久久综合狠狠| 欧美日韩在线播放| 欧美jizz19性欧美| 欧美视频精品一区| 欧美成人一区二区三区片免费| 欧美日韩综合久久| 欧美福利专区| 国际精品欧美精品| 亚洲视频免费在线观看| 亚洲人成7777| 久久精品人人做人人爽| 亚洲欧美日韩网| 亚洲女人天堂成人av在线| 久久久久久夜| 久久精品国产欧美亚洲人人爽| 欧美激情一区二区三级高清视频| 久久久夜精品| 国产精品中文在线| 一区二区三区不卡视频在线观看| 亚洲国产va精品久久久不卡综合| 性色av一区二区三区在线观看| 中文在线不卡视频| 欧美成人精品1314www| 卡通动漫国产精品| 国产亚洲综合精品| 亚洲欧美另类国产| 小处雏高清一区二区三区 | 久久久久久久久伊人| 欧美伊人久久大香线蕉综合69| 欧美日韩免费观看一区=区三区| 嫩草成人www欧美| 黄色亚洲网站| 久久精品中文字幕一区| 久久久91精品国产一区二区精品| 国产精品一区2区| 国产精品99久久久久久有的能看 | 国产伦精品一区二区三区照片91 | 亚洲天天影视| 欧美日韩一区二区三区| 日韩亚洲在线| 国产精品萝li| 亚洲午夜在线观看视频在线| 亚洲欧美日韩网| 国产精品一区在线观看你懂的| 亚洲一区二区免费在线| 欧美亚洲一区二区在线| 国产亚洲精久久久久久| 久久国产高清| 欧美高清在线一区| 日韩视频在线免费观看| 欧美色大人视频| 亚洲欧美韩国| 欧美jizz19性欧美| 一本到高清视频免费精品| 欧美日韩在线影院| 午夜免费在线观看精品视频| 久热精品视频在线观看| 亚洲精品一级| 国产精品拍天天在线| 久久不射2019中文字幕| 91久久国产综合久久| 亚洲免费人成在线视频观看| 国产香蕉97碰碰久久人人| 久久香蕉国产线看观看av| 亚洲精品在线观| 久久国产黑丝| 亚洲伦理在线| 国产精品爽爽ⅴa在线观看| 久久国产精品一区二区三区四区| 欧美国产日韩免费| 亚洲在线成人| 尤物视频一区二区| 欧美日韩视频在线观看一区二区三区| 亚洲在线免费视频| 亚洲国产成人精品久久久国产成人一区| 一本久道久久综合婷婷鲸鱼| 国产视频一区在线| 欧美精品乱人伦久久久久久| 亚洲欧美清纯在线制服| 亚洲观看高清完整版在线观看| 午夜精品久久久久久久久久久久| 在线免费观看日本欧美| 国产精品日韩一区二区三区| 老司机成人网| 欧美亚洲一区三区| 日韩午夜一区| 亚洲高清不卡在线| 久久久久国产一区二区三区| 亚洲视频视频在线| 亚洲国产老妈| 韩国成人福利片在线播放| 欧美色中文字幕| 欧美成人免费在线观看| 久久国内精品视频| 亚洲尤物在线视频观看| 亚洲精品一区二区三区99| 欧美成年人网| 乱人伦精品视频在线观看| 欧美一级大片在线观看| 亚洲伊人伊色伊影伊综合网| 99国产精品久久久久久久| 亚洲福利视频免费观看| 精品福利电影| 国产欧美日韩另类视频免费观看| 欧美三级在线播放| 欧美日本三级| 欧美日韩的一区二区| 欧美精品在线观看| 欧美国产日产韩国视频| 久久久久久久成人| 久久久久久久激情视频| 欧美在线视频观看| 久久精品人人做人人爽电影蜜月| 欧美一区二区在线看| 久久不见久久见免费视频1| 欧美一区国产一区| 久久九九免费| 老司机久久99久久精品播放免费| 久久久久久夜精品精品免费| 久久婷婷国产综合尤物精品| 久久免费视频在线观看| 久久久久久久综合| 欧美**字幕| 欧美日韩国产综合久久| 欧美丝袜一区二区| 国产精品网站在线| 国产一区二区日韩精品| 樱桃成人精品视频在线播放| 亚洲国产日韩一区| 夜夜嗨av一区二区三区四季av| 在线一区观看| 久久成人国产| 欧美电影打屁股sp| 亚洲免费观看在线观看| 亚洲一区二区在线免费观看视频| 欧美在线一区二区三区| 久久天天躁夜夜躁狠狠躁2022 | 99热这里只有精品8| 亚洲尤物视频网| 久久久久久久999精品视频| 欧美va亚洲va国产综合| 欧美日韩亚洲高清一区二区| 国产精品久久777777毛茸茸| 国产一区二区三区精品久久久| 亚洲国产第一| 亚洲专区国产精品| 久久久精品视频成人| 亚洲精品久久嫩草网站秘色| 亚洲影音先锋| 女女同性女同一区二区三区91| 欧美日韩在线视频观看| 经典三级久久| 亚洲一二三四久久| 美女主播一区| 亚洲午夜性刺激影院| 久久夜色精品国产欧美乱| 欧美三级黄美女| 亚洲国产欧美日韩精品| 午夜日韩av| 亚洲国产色一区| 久久精品国产一区二区电影| 欧美日精品一区视频| 在线一区欧美| 欧美高清成人| 欧美亚洲一区二区在线| 欧美主播一区二区三区| 亚洲黄色天堂| 欧美一区二区三区视频| 欧美日韩午夜剧场| 亚洲激情影视| 久久久www成人免费毛片麻豆| 亚洲欧洲一区| 毛片精品免费在线观看| 国内精品**久久毛片app| 亚洲一区二区三区中文字幕在线| 欧美国产日韩一区二区三区| 午夜精品久久久久久99热软件|