資源簡(jiǎn)介
System.out.println(" 1. RS-Hash Function Value: " + ghl.RSHash(key));
System.out.println(" 2. JS-Hash Function Value: " + ghl.JSHash(key));
System.out.println(" 3. PJW-Hash Function Value: " + ghl.PJWHash(key));
System.out.println(" 4. ELF-Hash Function Value: " + ghl.ELFHash(key));
System.out.println(" 5. BKDR-Hash Function Value: " + ghl.BKDRHash(key));
System.out.println(" 6. SDBM-Hash Function Value: " + ghl.SDBMHash(key));
System.out.println(" 7. DJB-Hash Function Value: " + ghl.DJBHash(key));
System.out.println(" 8. DEK-Hash Function Value: " + ghl.DEKHash(key));
System.out.println(" 9. BP-Hash Function Value: " + ghl.BPHash(key));
System.out.println(" 9. FNV-Hash Function Value: " + ghl.FNVHash(key));
System.out.println("10. AP-Hash Function Value: " + ghl.APHash(key));

代碼片段和文件信息
/*
?**************************************************************************
?*????????????????????????????????????????????????????????????????????????*
?*??????????General?Purpose?Hash?Function?Algorithms?Library??????????????*
?*????????????????????????????????????????????????????????????????????????*
?*?Author:?Arash?Partow?-?2002????????????????????????????????????????????*
?*?URL:?http://www.partow.net?????????????????????????????????????????????*
?*?URL:?http://www.partow.net/programming/hashfunctions/index.html????????*
?*????????????????????????????????????????????????????????????????????????*
?*?Copyright?notice:??????????????????????????????????????????????????????*
?*?Free?use?of?the?General?Purpose?Hash?Function?Algorithms?Library?is????*
?*?permitted?under?the?guidelines?and?in?accordance?with?the?most?current?*
?*?version?of?the?Common?Public?License.??????????????????????????????????*
?*?http://www.opensource.org/licenses/cpl.php?????????????????????????????*
?*????????????????????????????????????????????????????????????????????????*
?**************************************************************************
*/
class?GeneralHashFunctionLibrary
{
???public?long?RSHash(String?str)
???{
??????int?b?????=?378551;
??????int?a?????=?63689;
??????long?hash?=?0;
??????for(int?i?=?0;?i???????{
?????????hash?=?hash?*?a?+?str.charAt(i);
?????????a????=?a?*?b;
??????}
??????return?hash;
???}
???/*?End?Of?RS?Hash?Function?*/
???public?long?JSHash(String?str)
???{
??????long?hash?=?1315423911;
??????for(int?i?=?0;?i???????{
?????????hash?^=?((hash?<5)?+?str.charAt(i)?+?(hash?>>?2));
??????}
??????return?hash;
???}
???/*?End?Of?JS?Hash?Function?*/
???public?long?PJWHash(String?str)
???{
??????long?BitsInUnsignedInt?=?(long)(4?*?8);
??????long?ThreeQuarters?????=?(long)((BitsInUnsignedInt??*?3)?/?4);
??????long?OneEighth?????????=?(long)(BitsInUnsignedInt?/?8);
??????long?HighBits??????????=?(long)(0xFFFFFFFF)?<(BitsInUnsignedInt?-?OneEighth);
??????long?hash??????????????=?0;
??????long?test??????????????=?0;
??????for(int?i?=?0;?i???????{
?????????hash?=?(hash?<
?????????if((test?=?hash?&?HighBits)??!=?0)
?????????{
????????????hash?=?((?hash?^?(test?>>?ThreeQuarters))?&?(~HighBits));
?????????}
??????}
??????return?hash;
???}
???/*?End?Of??P.?J.?Weinberger?Hash?Function?*/
???public?long?ELFHash(String?str)
???{
??????long?hash?=?0;
??????long?x????=?0;
??????for(int?i?=?0;?i???????{
?????????hash?=?(hash?<4)?+?str.charAt(i);
?????????if((x?=?hash?&?0xF0000000L)?!=?0)
?????????{
????????????hash?^=?(x?>>?24);
?????????}
?????????hash?&=?~x;
??????}
??????return?hash;
???}
???/*?End?Of?ELF?Hash?Function?*/
???public?long?BKDRHash(String?str)
???{
??????long?seed?=?131;?//?31?131?1313?13131?131313?etc..
??????long?hash?=?0;
??????for(int?i?=?0;?i???????{
?????????hash?=?(hash?*?seed)?
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2000-01-01?00:00??GeneralHashFunctions_-_Java\
?????文件????????4741??2000-01-01?00:00??GeneralHashFunctions_-_Java\GeneralHashFunctionLibrary.java
?????文件????????2632??2000-01-01?00:00??GeneralHashFunctions_-_Java\GeneralHashTest.java
?????文件?????????695??2000-01-01?00:00??GeneralHashFunctions_-_Java\Makefile
評(píng)論
共有 條評(píng)論