哈希算法举例

1、直接定址法

公式:H(key) = a * key + b,a b 为常数
例:统计出生年份,可将公式变换为:f(key) = key - 1990

keyaddrvalue(万)
1990010
1991112
199225
1993344

2、除留取余法

对于表长为m的散列表
公式:H(key) = key % p, (p <= m ,p一般取素数)
例:p = TableSize = 17
34 % 17 = 0

keyaddrvalue(万)
34010
18112
225
20344
16

3、数字分析法

分析数字关键字在各位上的变化情况,取比较随机的位作为散列地址。比如,手机号
码,一般来说,后面4位是真正的用户号。
公式:H(key) = atoi(key + 7)
例:key = 手机号:13312345678

keyaddrvalue(手机号)
13312345678567813312345678

4、 折叠法

把关键字分割成位数相同的几个部分,然后叠加
例:
在这里插入图片描述

5、平方取中法

把关键字做平方计算,然后取结果中的中间三位
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值