散列表

本文详细介绍了散列表的概念,包括直接定址法、除留余数法等常见散列函数,以及线性探测法、二次探测法、随机探测法等处理冲突的方法。同时对比了开散列表与闭散列表的特点。
摘要由CSDN通过智能技术生成

散列表的概念

散列法又称哈希法,它在元素的存储位置元素关键码间建立一个确定的对应函数关系Hash(),使每个关键码与结构中的一个唯一的存储位置相对应:
Address=Hash(Rec.key)
插入时,按照此函数计算存储位置并存放,查找时对元素的关键码进行相应的函数计算,把求得的函数值与关键码进行比对,一致则查找成功。按照此方法构造的表结构即为散列表

常见的散列函数

(1)直接定址法
对关键码进行先行计算:hash(key)=a*key+b,a和b为常数
(2)除留余数法
散列表中存储地址范围0~m-1,去一个不大于m但最接近m的质数p,hash(key)=key%p(p<=m)
(3)数字分析法
设有n个d位数,每一位可能有r种不同的符号,在各位的出现频率不一定相同,若散列表地址0~m-1,占k位数,可选其中各种符号分布均匀的k位,并乘一个比例因子得到散列地址
(4)平方取中法
计算构成关键码标识符的内码的平方,取中间若干位为散列地址
(5)折叠法
把关键码自左至右分成位数与散列地址相等的几部分,进行叠加
设关键码为2 5 3 4 6 3 5 8 7 0 5,散列地址为三位。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值