Tauruser
Enjoy Every Day
posts - 34, comments - 95, trackbacks - 0, articles - 5
C++博客
::
首頁(yè)
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
查找字符串的哈希方法(zz)
Posted on 2006-06-21 15:39
Tauruser
閱讀(2357)
評(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%開(kāi)源!大型工業(yè)跨平臺(tái)軟件C++源碼提供,建模,組態(tài)!
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問(wèn)
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)
給我留言
查看公開(kāi)留言
查看私人留言
隨筆分類(lèi)
(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)
文章分類(lèi)
(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年寫(xiě)的直線裁剪算法
5.?C# Coding時(shí)的注釋格式(zz)
6.?查找字符串的哈希方法(zz)
7.?木馬客戶端與服務(wù)端通訊如何隱藏不被發(fā)現(xiàn)
8.?Gauss消去法直接求解方程組(附例程)
9.?使用AsycnSocket類(lèi)進(jìn)行簡(jiǎn)單雙機(jī)通訊
10.?Romberg求積(例程)
搜索
積分與排名
積分 - 105988
排名 - 237
最新評(píng)論
1.?re: 雙鏈表模版類(lèi)的實(shí)現(xiàn)
問(wèn)下:關(guān)于查找(search)那部分,我有點(diǎn)小問(wèn)題要問(wèn),就是你直接就靠默認(rèn)的比較操作符來(lái)比較,而你所用的是模版,鏈表支持各種類(lèi)型,那么是字符串類(lèi)型的鏈表或自定義類(lèi)型的呢,你該怎么辦
--周曉榮
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類(lèi)型性能對(duì)比
評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
--Hzj_jie
4.?re: 05年寫(xiě)的直線裁剪算法
你這個(gè)算法也太復(fù)雜了吧
--啊啊啊啊啊啊
5.?re: C++ Primer Fourth Edition (download file)
i want english edition
--zhccc
閱讀排行榜
1.?MFC ComboBox 使用方法(轉(zhuǎn)載)(18733)
2.?結(jié)構(gòu)體對(duì)齊的具體含義(#pragma pack) (轉(zhuǎn)載)(11444)
3.?Tab Control控件使用的例子(zz)(8354)
4.?MAC地址有合法不合法之分嗎?(7567)
5.?VC++2005 比 VC++ 6.0 退步了?(7532)
評(píng)論排行榜
1.?C風(fēng)格字符串與標(biāo)準(zhǔn)庫(kù)string類(lèi)型性能對(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)
国产精品99久久久精品无码
|
狠狠色丁香久久婷婷综
|
国产精品久久久久久久久久影院
|
亚洲精品tv久久久久久久久久
|
亚洲国产一成久久精品国产成人综合
|
国内精品久久久久久久涩爱
|
国产免费久久精品99久久
|
欧美日韩中文字幕久久久不卡
|
免费无码国产欧美久久18
|
久久久精品2019免费观看
|
色综合久久天天综合
|
久久无码一区二区三区少妇
|
伊人久久大香线焦AV综合影院
|
99久久精品日本一区二区免费
|
久久国语露脸国产精品电影
|
久久99精品久久久久久hb无码
|
青青热久久综合网伊人
|
一本久久综合亚洲鲁鲁五月天亚洲欧美一区二区
|
亚洲欧美一区二区三区久久
|
久久精品人人做人人爽电影蜜月
|
麻豆精品久久精品色综合
|
亚洲精品无码久久久久AV麻豆
|
色狠狠久久AV五月综合
|
久久久久久久久久免免费精品
|
精品国产乱码久久久久软件
|
中文字幕久久欲求不满
|
久久精品国产亚洲av麻豆图片
|
亚洲国产精品婷婷久久
|
无码人妻久久一区二区三区蜜桃
|
国产精品一区二区久久
|
国产成人精品综合久久久久
|
亚洲伊人久久大香线蕉苏妲己
|
久久人人爽人人爽人人片AV东京热
|
久久精品中文字幕一区
|
久久国产成人亚洲精品影院
|
亚洲国产精品无码久久一区二区
|
久久天天婷婷五月俺也去
|
亚洲国产精品久久久久婷婷软件
|
无码AV波多野结衣久久
|
亚洲精品国产第一综合99久久
|
2020最新久久久视精品爱
|