博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BKDRHash算法的初步了解
阅读量:7085 次
发布时间:2019-06-28

本文共 497 字,大约阅读时间需要 1 分钟。

字符串hash最高效的算法,  搜了一下,  原理是: 字符串的字符集只有128个字符,所以把一个字符串当成128或更高进制的数字来看,当然是唯一的 

这里unsigned不需要考虑溢出的问题,  不过周神说:  碰撞率很小是因为n阶多项式最多n个根. 也是有道理的.

最后 hash & 0x7FFFFFFF 只是为了返回一个int

1 // BKDR Hash Function 2 unsigned int BKDRHash(char *str) 3 { 4     unsigned int seed = 131; // 31 131 1313 13131 131313 etc.. 5     unsigned int hash = 0; 6   7     while (*str) 8     { 9         hash = hash * seed + (*str++);10     }11  12     return (hash & 0x7FFFFFFF);13 }

 

转载于:https://www.cnblogs.com/Stomach-ache/p/3726338.html

你可能感兴趣的文章
Oracle数据库重复数据删除的三种情况
查看>>
clearfix清除浮动
查看>>
文件的基本操作
查看>>
Java运算符使用
查看>>
基本数据类型,包装类型,String类型数据之间的转换
查看>>
网络出口 NAT 配置实例
查看>>
C#如何进行多线程编程
查看>>
Exchange 日常管理之一:用户邮箱完全访问权限
查看>>
CloudStack 由于【辅助】二级存储名称配置错误引发的SSVM创建失败
查看>>
Android Studio - 第四十四期 倒计时
查看>>
负载均衡集群中如何隐藏VIP
查看>>
CUDA编程接口:使用nvcc编译器的兼容性
查看>>
IOS学习——UI基础UIWindow、UIView(五)
查看>>
Silverlight MMORPG《窝窝世界》游戏视频
查看>>
Oracle VM VirtualBox上安装windows server2008R2做SharePointServer2010开发(下
查看>>
数据收集利器 cAdvisor - 每天5分钟玩转 Docker 容器技术(82)
查看>>
<rhel6+pptpd+freeradius+mysql>
查看>>
前端有哪些优质资源可以利用?
查看>>
[ASP.NET]跨页面传值
查看>>
名词:topology、architecture和struct,究竟什么才是架构?
查看>>