BKDRHash算法的初步了解
2024-09-05 09:33:50
字符串hash最高效的算法, 搜了一下, 原理是: 字符串的字符集只有128个字符,所以把一个字符串当成128或更高进制的数字来看,当然是唯一的
这里unsigned不需要考虑溢出的问题, 不过周神说: 碰撞率很小是因为n阶多项式最多n个根. 也是有道理的.
最后 hash & 0x7FFFFFFF 只是为了返回一个int
// BKDR Hash Function
unsigned int BKDRHash(char *str)
{
unsigned int seed = ; // 31 131 1313 13131 131313 etc..
unsigned int hash = ; while (*str)
{
hash = hash * seed + (*str++);
} return (hash & 0x7FFFFFFF);
}
最新文章
- 分页插件思想:pc加载更多功能和移动端下拉刷新加载数据
- ruby
- NOI2014 随机数生成器
- WebForm
- Python开发—Ajax系列
- Tomcat+redis+nginx配置
- Spring MVC @RequestMapping注解详解
- WIN10中DOCKER的安装
- NIO(四)
- ARMV8 datasheet学习笔记4:AArch64系统级体系结构之Generic timer
- 菜鸟学SSH(七)——Spring jar包详解
- win7下配置spark
- Spring cloud ReadTimeout 问题解决
- RabbitMQ + topic发送消息+python
- NumPy字节交换
- boost库的配置——Linux篇
- 领扣[LeetCode]从零开始[使用C++][1,10]
- background 背景图铺满界面
- rtmp jwplayer简单应用
- 索尼(SONY) SVE1512S7C 把WIN8降成WIN7图文教程