Tauruser
Enjoy Every Day
posts - 34, comments - 95, trackbacks - 0, articles - 5
C++博客
::
首頁
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
查找字符串的哈希方法(zz)
Posted on 2006-06-21 15:39
Tauruser
閱讀(2380)
評(píng)論(2)
編輯
收藏
引用
?
//
?RS?Hash?Function
unsigned?
int
?RSHash(
char
?
*
str)
{
????????unsigned?
int
?b?
=
?
378551
;
????????unsigned?
int
?a?
=
?
63689
;
????????unsigned?
int
?hash?
=
?
0
;
????????
while
?(
*
str)
????????
{
????????????????hash?
=
?hash?
*
?a?
+
?(
*
str
++
);
????????????????a?
*=
?b;
????????}
????????
return
?(hash?
&
?
0x7FFFFFFF
);
}
//
?JS?Hash?Function
unsigned?
int
?JSHash(
char
?
*
str)
{
????????unsigned?
int
?hash?
=
?
1315423911
;
????????
while
?(
*
str)
????????
{
????????????????hash?
^=
?((hash?
<<
?
5
)?
+
?(
*
str
++
)?
+
?(hash?
>>
?
2
));
????????}
????????
return
?(hash?
&
?
0x7FFFFFFF
);
}
//
?P.?J.?Weinberger?Hash?Function
unsigned?
int
?PJWHash(
char
?
*
str)
{
????????unsigned?
int
?BitsInUnignedInt?
=
?(unsigned?
int
)(
sizeof
(unsigned?
int
)?
*
8
);
????????unsigned?
int
?ThreeQuarters????
=
?(unsigned?
int
)((BitsInUnignedInt??
*
?
3
)
?
/
?
4
);
????????unsigned?
int
?OneEighth????????
=
?(unsigned?
int
)(BitsInUnignedInt?
/
?
8
);
????????unsigned?
int
?HighBits?????????
=
?(unsigned?
int
)(
0xFFFFFFFF
)?
<<
?(BitsInU
nignedInt?
-
?OneEighth);
????????unsigned?
int
?hash?????????????
=
?
0
;
????????unsigned?
int
?test?????????????
=
?
0
;
????????
while
?(
*
str)
????????
{
????????????????hash?
=
?(hash?
<<
?OneEighth)?
+
?(
*
str
++
);
????????????????
if
?((test?
=
?hash?
&
?HighBits)?
!=
?
0
)
????????????????
{
????????????????????????hash?
=
?((hash?
^
?(test?
>>
?ThreeQuarters))?
&
?(
~
HighBits)
);
????????????????}
????????}
????????
return
?(hash?
&
?
0x7FFFFFFF
);
}
//
?ELF?Hash?Function
unsigned?
int
?ELFHash(
char
?
*
str)
{
????????unsigned?
int
?hash?
=
?
0
;
????????unsigned?
int
?x????
=
?
0
;
????????
while
?(
*
str)
????????
{
????????????????hash?
=
?(hash?
<<
?
4
)?
+
?(
*
str
++
);
????????????????
if
?((x?
=
?hash?
&
?
0xF0000000L
)?
!=
?
0
)
????????????????
{
????????????????????????hash?
^=
?(x?
>>
?
24
);
????????????????????????hash?
&=
?
~
x;
????????????????}
????????}
????????
return
?(hash?
&
?
0x7FFFFFFF
);
}
//
?BKDR?Hash?Function
unsigned?
int
?BKDRHash(
char
?
*
str)
{
????????unsigned?
int
?seed?
=
?
131
;?
//
?31?131?1313?13131?131313?etc..
????????unsigned?
int
?hash?
=
?
0
;
????????
while
?(
*
str)
????????
{
????????????????hash?
=
?hash?
*
?seed?
+
?(
*
str
++
);
????????}
????????
return
?(hash?
&
?
0x7FFFFFFF
);
}
//
?SDBM?Hash?Function
unsigned?
int
?SDBMHash(
char
?
*
str)
{
????????unsigned?
int
?hash?
=
?
0
;
????????
while
?(
*
str)
????????
{
????????????????hash?
=
?(
*
str
++
)?
+
?(hash?
<<
?
6
)?
+
?(hash?
<<
?
16
)?
-
?hash;
????????}
????????
return
?(hash?
&
?
0x7FFFFFFF
);
}
//
?DJB?Hash?Function
unsigned?
int
?DJBHash(
char
?
*
str)
{
????????unsigned?
int
?hash?
=
?
5381
;
????????
while
?(
*
str)
????????
{
????????????????hash?
+=
?(hash?
<<
?
5
)?
+
?(
*
str
++
);
????????}
????????
return
?(hash?
&
?
0x7FFFFFFF
);
}
//
?AP?Hash?Function
unsigned?
int
?APHash(
char
?
*
str)
{
????????unsigned?
int
?hash?
=
?
0
;
????????
int
?i;
????????
for
?(i
=
0
;?
*
str;?i
++
)
????????
{
????????????????
if
?((i?
&
?
1
)?
==
?
0
)
????????????????
{
????????????????????????hash?
^=
?((hash?
<<
?
7
)?
^
?(
*
str
++
)?
^
?(hash?
>>
?
3
));
????????????????}
????????????????
else
????????????????
{
????????????????????????hash?
^=
?(
~
((hash?
<<
?
11
)?
^
?(
*
str
++
)?
^
?(hash?
>>
?
5
)));
????????????????}
????????}
????????
return
?(hash?
&
?
0x7FFFFFFF
);
}
比較經(jīng)典的字符串hash就這些了吧,"ELF Hash Function" <-這個(gè)比較常用..
Feedback
#
re: 查找字符串的哈希方法(zz)
回復(fù)
更多評(píng)論
2007-10-05 17:04 by
秒大刀
不錯(cuò),好東西
非常感謝!
#
re: 查找字符串的哈希方法(zz)
回復(fù)
更多評(píng)論
2007-12-23 10:51 by
哈哈
感謝~很好!
刷新評(píng)論列表
只有注冊(cè)用戶
登錄
后才能發(fā)表評(píng)論。
【推薦】100%開源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © Tauruser
日歷
<
2006年6月
>
日
一
二
三
四
五
六
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
公告
常用鏈接
我的隨筆
我的評(píng)論
我參與的隨筆
留言簿
(7)
給我留言
查看公開留言
查看私人留言
隨筆分類
(16)
MFC(2)
計(jì)算機(jī)圖形學(xué)(2)
密碼學(xué)
數(shù)學(xué)模型
數(shù)值計(jì)算(2)
算法與數(shù)據(jù)結(jié)構(gòu)(9)
信息論(1)
隨筆檔案
(34)
2007年3月 (1)
2007年2月 (2)
2007年1月 (1)
2006年10月 (1)
2006年6月 (3)
2006年5月 (5)
2006年4月 (6)
2006年3月 (14)
2006年2月 (1)
文章分類
(5)
密碼學(xué)
數(shù)學(xué)模型
數(shù)值計(jì)算
算法與數(shù)據(jù)結(jié)構(gòu)(4)
網(wǎng)絡(luò)(1)
信息論
文章檔案
(5)
2006年4月 (1)
2006年3月 (4)
相冊(cè)
文章貼圖
收藏夾
(3)
我的收藏(3)
協(xié)議
流媒體
中國(guó)協(xié)議網(wǎng)
友情鏈接
Orlaa
最新隨筆
1.?CListCtrl For Beginners(轉(zhuǎn)載)
2.?結(jié)構(gòu)體對(duì)齊的具體含義(#pragma pack) (轉(zhuǎn)載)
3.?MFC ComboBox 使用方法(轉(zhuǎn)載)
4.?05年寫的直線裁剪算法
5.?C# Coding時(shí)的注釋格式(zz)
6.?查找字符串的哈希方法(zz)
7.?木馬客戶端與服務(wù)端通訊如何隱藏不被發(fā)現(xiàn)
8.?Gauss消去法直接求解方程組(附例程)
9.?使用AsycnSocket類進(jìn)行簡(jiǎn)單雙機(jī)通訊
10.?Romberg求積(例程)
搜索
積分與排名
積分 - 106816
排名 - 238
最新評(píng)論
1.?re: 雙鏈表模版類的實(shí)現(xiàn)
問下:關(guān)于查找(search)那部分,我有點(diǎn)小問題要問,就是你直接就靠默認(rèn)的比較操作符來比較,而你所用的是模版,鏈表支持各種類型,那么是字符串類型的鏈表或自定義類型的呢,你該怎么辦
--周曉榮
2.?re: OnSize()加入處理函數(shù)后,DEBUG報(bào)告出錯(cuò)
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--NULL
3.?re: C風(fēng)格字符串與標(biāo)準(zhǔn)庫(kù)string類型性能對(duì)比
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--Hzj_jie
4.?re: 05年寫的直線裁剪算法
你這個(gè)算法也太復(fù)雜了吧
--啊啊啊啊啊啊
5.?re: C++ Primer Fourth Edition (download file)
i want english edition
--zhccc
閱讀排行榜
1.?MFC ComboBox 使用方法(轉(zhuǎn)載)(18758)
2.?結(jié)構(gòu)體對(duì)齊的具體含義(#pragma pack) (轉(zhuǎn)載)(11473)
3.?Tab Control控件使用的例子(zz)(8374)
4.?MAC地址有合法不合法之分嗎?(7627)
5.?VC++2005 比 VC++ 6.0 退步了?(7557)
評(píng)論排行榜
1.?C風(fēng)格字符串與標(biāo)準(zhǔn)庫(kù)string類型性能對(duì)比(20)
2.?VC++2005 比 VC++ 6.0 退步了?(12)
3.?OnSize()加入處理函數(shù)后,DEBUG報(bào)告出錯(cuò)(8)
4.?為什么在VS2005重載輸出運(yùn)算符那么難?(7)
5.?Gauss消去法直接求解方程組(附例程)(7)
久久久久综合中文字幕
|
久久精品国产亚洲AV无码麻豆
|
精品999久久久久久中文字幕
|
久久精品国内一区二区三区
|
美女久久久久久
|
九九精品99久久久香蕉
|
国产精品va久久久久久久
|
久久人人爽人人爽人人片AV高清
|
久久精品视频91
|
久久久久久精品成人免费图片
|
久久精品国产免费观看三人同眠
|
色狠狠久久AV五月综合
|
久久99精品国产麻豆婷婷
|
亚洲精品乱码久久久久久久久久久久
|
国产一区二区三区久久
|
午夜欧美精品久久久久久久
|
久久e热在这里只有国产中文精品99
|
亚洲国产另类久久久精品黑人
|
精品久久久久久无码人妻蜜桃
|
伊人久久久AV老熟妇色
|
午夜福利91久久福利
|
久久国产免费
|
免费国产99久久久香蕉
|
97超级碰碰碰久久久久
|
精品无码久久久久久尤物
|
亚洲综合日韩久久成人AV
|
99久久国产亚洲综合精品
|
久久福利片
|
久久综合伊人77777麻豆
|
国产成人99久久亚洲综合精品
|
国产精品一区二区久久精品
|
久久久久人妻精品一区
|
国产精品美女久久久m
|
国产精品久久久久久久久免费
|
狠狠88综合久久久久综合网
|
久久激情亚洲精品无码?V
|
久久夜色tv网站
|
久久久久久国产精品免费免费
|
国产日韩久久免费影院
|
久久综合久久伊人
|
麻豆av久久av盛宴av
|