Tauruser
Enjoy Every Day
posts - 34, comments - 95, trackbacks - 0, articles - 5
C++博客
::
首頁
::
新隨筆
::
聯(lián)系
::
聚合
::
管理
查找字符串的哈希方法(zz)
Posted on 2006-06-21 15:39
Tauruser
閱讀(2367)
評論(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" <-這個比較常用..
Feedback
#
re: 查找字符串的哈希方法(zz)
回復(fù)
更多評論
2007-10-05 17:04 by
秒大刀
不錯,好東西
非常感謝!
#
re: 查找字符串的哈希方法(zz)
回復(fù)
更多評論
2007-12-23 10:51 by
哈哈
感謝~很好!
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
【推薦】100%開源!大型工業(yè)跨平臺軟件C++源碼提供,建模,組態(tài)!
網(wǎng)站導(dǎo)航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
Powered by:
C++博客
Copyright © Tauruser
日歷
<
2006年10月
>
日
一
二
三
四
五
六
24
25
26
27
28
29
30
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
31
1
2
3
4
公告
常用鏈接
我的隨筆
我的評論
我參與的隨筆
留言簿
(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)
相冊
文章貼圖
收藏夾
(3)
我的收藏(3)
協(xié)議
流媒體
中國協(xié)議網(wǎng)
友情鏈接
Orlaa
最新隨筆
1.?CListCtrl For Beginners(轉(zhuǎn)載)
2.?結(jié)構(gòu)體對齊的具體含義(#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)行簡單雙機(jī)通訊
10.?Romberg求積(例程)
搜索
積分與排名
積分 - 106412
排名 - 237
最新評論
1.?re: 雙鏈表模版類的實(shí)現(xiàn)
問下:關(guān)于查找(search)那部分,我有點(diǎn)小問題要問,就是你直接就靠默認(rèn)的比較操作符來比較,而你所用的是模版,鏈表支持各種類型,那么是字符串類型的鏈表或自定義類型的呢,你該怎么辦
--周曉榮
2.?re: OnSize()加入處理函數(shù)后,DEBUG報(bào)告出錯
評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--NULL
3.?re: C風(fēng)格字符串與標(biāo)準(zhǔn)庫string類型性能對比
評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--Hzj_jie
4.?re: 05年寫的直線裁剪算法
你這個算法也太復(fù)雜了吧
--啊啊啊啊啊啊
5.?re: C++ Primer Fourth Edition (download file)
i want english edition
--zhccc
閱讀排行榜
1.?MFC ComboBox 使用方法(轉(zhuǎn)載)(18748)
2.?結(jié)構(gòu)體對齊的具體含義(#pragma pack) (轉(zhuǎn)載)(11462)
3.?Tab Control控件使用的例子(zz)(8362)
4.?MAC地址有合法不合法之分嗎?(7603)
5.?VC++2005 比 VC++ 6.0 退步了?(7542)
評論排行榜
1.?C風(fēng)格字符串與標(biāo)準(zhǔn)庫string類型性能對比(20)
2.?VC++2005 比 VC++ 6.0 退步了?(12)
3.?OnSize()加入處理函數(shù)后,DEBUG報(bào)告出錯(8)
4.?為什么在VS2005重載輸出運(yùn)算符那么難?(7)
5.?Gauss消去法直接求解方程組(附例程)(7)
人妻久久久一区二区三区
|
久久性生大片免费观看性
|
伊人久久无码中文字幕
|
久久久久99这里有精品10
|
91麻豆国产精品91久久久
|
亚洲国产精品无码成人片久久
|
久久久久亚洲AV无码永不
|
久久精品草草草
|
久久人人爽人人爽人人片AV不
|
伊人久久大香线蕉av一区
|
久久亚洲欧美日本精品
|
综合久久精品色
|
91久久香蕉国产熟女线看
|
色综合久久夜色精品国产
|
成人综合伊人五月婷久久
|
久久婷婷五月综合色99啪ak
|
久久亚洲AV成人无码国产
|
久久国产精品一区
|
成人国内精品久久久久一区
|
久久综合亚洲色HEZYO国产
|
国产精品久久成人影院
|
伊人精品久久久久7777
|
91精品国产综合久久四虎久久无码一级
|
欧美午夜A∨大片久久
|
国产精品VIDEOSSEX久久发布
|
久久久www免费人成精品
|
久久国产精品免费一区二区三区
|
久久综合给合久久狠狠狠97色
|
亚洲欧美日韩精品久久亚洲区
|
亚洲国产成人久久精品动漫
|
久久久久久毛片免费播放
|
久久久久亚洲AV成人网人人网站
|
久久播电影网
|
久久久无码精品亚洲日韩软件
|
久久精品国内一区二区三区
|
国产成人久久精品一区二区三区
|
久久久久亚洲av综合波多野结衣
|
国内精品伊人久久久影院
|
日韩欧美亚洲国产精品字幕久久久
|
精品熟女少妇AV免费久久
|
久久人人爽人人爽人人片AV东京热
|