3、hash 函数的设计

1、hash 函数对整数和大整数的处理

 

对于整数的hash函数,我们设计hash 函数,我们可以用取模的方式来获得。

2、对于浮点型 设计hash 函数处理

3、对于字符串hash 函数的处理

  4、对于复合类型的处理

 

5、我们设计哈希函数的原则?

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
布隆过滤器是一种快速判断一个元素是否存在于集合中的数据结构,其核心是使用多个哈希函数对元素进行哈希,将哈希值映射到位数组中的对应位置上。当检查某个元素是否在集合中时,先将该元素进行哈希,然后查看对应的位数组位置是否都为1,如果都为1,则表明该元素可能在集合中,如果有任意一位为0,则表明该元素一定不在集合中。 实现布隆过滤器的核心是哈希函数设计,常用的哈希函数包括MD5、SHA-1、SHA-256等,但是这些哈希函数的计算速度较慢,不适合用于布隆过滤器中。因此,常用的哈希函数是基于Hash算法实现的,如MurmurHash、JenkinsHash等。 在实现布隆过滤器时,需要确定以下参数: 1. 集合大小n 2. 位数组大小m 3. 哈希函数个数k 其中,n和m的选择需要根据实际情况进行调整,而k的选择可以使用公式k = ln2 * (m/n)进行计算。 具体实现步骤如下: 1. 初始化位数组,将所有位都设置为0。 2. 对于待添加的元素,使用k个不同的哈希函数对其进行哈希,得到k个哈希值。 3. 将得到的k个哈希值映射到位数组中对应的位置,并将这些位置都设置为1。 4. 对于待查询的元素,同样使用k个不同的哈希函数对其进行哈希,得到k个哈希值。 5. 检查得到的k个哈希值所对应的位数组位置是否都为1,如果都为1,则表明该元素可能在集合中,如果有任意一位为0,则表明该元素一定不在集合中。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值