常用Hash算法(C语言的简单实现)

下面小编就为大家带来一篇常用Hash算法(C语言的简单实现)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

如下所示:

 #include "GeneralHashFunctions.h" unsigned int RSHash(char* str, unsigned int len) { unsigned int b  = 378551; unsigned int a  = 63689; unsigned int hash = 0; unsigned int i  = 0; for(i = 0; i > 2)); } return hash; } /* End Of JS Hash Function */ unsigned int PJWHash(char* str, unsigned int len) { const unsigned int BitsInUnsignedInt = (unsigned int)(sizeof(unsigned int) * 8); const unsigned int ThreeQuarters   = (unsigned int)((BitsInUnsignedInt * 3) / 4); const unsigned int OneEighth     = (unsigned int)(BitsInUnsignedInt / 8); const unsigned int HighBits     = (unsigned int)(0xFFFFFFFF) << (BitsInUnsignedInt - OneEighth); unsigned int hash       = 0; unsigned int test       = 0; unsigned int i         = 0; for(i = 0; i > ThreeQuarters)) & (~HighBits)); } } return hash; } /* End Of P. J. Weinberger Hash Function */ unsigned int ELFHash(char* str, unsigned int len) { unsigned int hash = 0; unsigned int x  = 0; unsigned int i  = 0; for(i = 0; i > 24); } hash &= ~x; } return hash; } /* End Of ELF Hash Function */ unsigned int BKDRHash(char* str, unsigned int len) { unsigned int seed = 131; /* 31 131 1313 13131 131313 etc.. */ unsigned int hash = 0; unsigned int i  = 0; for(i = 0; i > 27)) ^ (*str); } return hash; } /* End Of DEK Hash Function */ unsigned int BPHash(char* str, unsigned int len) { unsigned int hash = 0; unsigned int i  = 0; for(i = 0; i > 3)) : (~((hash << 11) + ((*str) ^ (hash >> 5)))); } return hash; } /* End Of AP Hash Function */ 

以上就是常用Hash算法(C语言的简单实现)的详细内容,更多请关注0133技术站其它相关文章!

赞(0) 打赏
未经允许不得转载:0133技术站首页 » C语言