免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 3095 | 回复: 10
打印 上一主题 下一主题

请高手分析下这个 是个什么样的算法呢? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-07-03 20:47 |只看该作者 |倒序浏览
本帖最后由 DIYBYPERL 于 2012-07-03 20:48 编辑
  1. static unsigned int hashkey(const void *pvKey)   //pvKey指向一个字符串                                                        
  2. {                                                                                                        
  3.     int i;                                                                                               
  4.     unsigned int k = 0;                                                                                 
  5.     unsigned char *s = (unsigned char *)pvKey;                                                           
  6.     int iKeyLength = strlen((char*)pvKey);                                                               
  7.                                                                                                          
  8.     for (i=0; i<iKeyLength; ++i,++s)                                                                     
  9.     {                                                                                                   
  10.         k += ~(k << 9);   //L23                                                                              
  11.         k ^= ((k >> 14) | (k << 18));                                                                    
  12.         k += (k << 4);                                                                                   
  13.         k ^= ((k >> 10) | (k << 22));                                                                    
  14.         k += *s;                                                                                         
  15.     }                                                                                                   
  16.     return k;                                                                                            
  17. }
复制代码
请高手分析下这个 是个什么样的算法呢?

论坛徽章:
0
2 [报告]
发表于 2012-07-04 09:05 |只看该作者
人工置顶

论坛徽章:
2
CU大牛徽章
日期:2013-04-17 11:46:28CU大牛徽章
日期:2013-04-17 11:46:39
3 [报告]
发表于 2012-07-04 09:28 |只看该作者
用在何处?有无较大价值?

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
4 [报告]
发表于 2012-07-04 10:09 |只看该作者
一个hash算法

论坛徽章:
0
5 [报告]
发表于 2012-07-04 11:06 |只看该作者
产生HASH键的,但看不懂这个算法
高手解释下。。。

论坛徽章:
154
2022北京冬奥会纪念版徽章
日期:2015-08-07 17:10:5720周年集字徽章-年
日期:2022-10-26 16:44:2015-16赛季CBA联赛之深圳
日期:2022-11-02 14:02:4515-16赛季CBA联赛之八一
日期:2022-11-28 12:07:4820周年集字徽章-20	
日期:2023-07-19 08:49:4515-16赛季CBA联赛之八一
日期:2023-11-04 19:23:5115-16赛季CBA联赛之广夏
日期:2023-12-13 18:09:34
6 [报告]
发表于 2012-07-04 11:18 |只看该作者
有问题吗??

论坛徽章:
0
7 [报告]
发表于 2012-07-04 11:31 |只看该作者
看不明白

论坛徽章:
0
8 [报告]
发表于 2012-07-04 14:24 |只看该作者
hashkey的生成还真没有研究,帮顶吧:wink:

论坛徽章:
0
9 [报告]
发表于 2012-07-04 16:03 |只看该作者
不能沉!!!

论坛徽章:
0
10 [报告]
发表于 2012-07-04 16:23 |只看该作者
STL里面有一个char *
unsigned int key = 0;
for(int i = 0; ch[i]; ++i)
key = key * 5 + (int)ch[i];
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP