【数据结构】hash冲突的解决方法

本文介绍了哈希表的定义和散列函数的构造方法,包括直接定址法、数字分析法、平方取中法、折叠法、随机数法和除留取余法。接着详细阐述了处理哈希冲突的四种方法:开放定址法、再散列函数法、公共溢出区法和链地址法,分析了各自的优缺点和适用场景。
摘要由CSDN通过智能技术生成

hash表的定义

  • 散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key 对应一个存储位置f (key),对应关系f 称为散列函数, 又称为哈希( Hash) 函数

  • 采用散列技术将记录存储在一块连续的存储空间中,这块连续存储空间称为散列表或哈希表(hash table)

散列函数的构造方法

1.直接定址法

取关键字的某个线性函数值为散列地址

f ( key ) =a x key+b (a 、b 为常数)

2.数字分析法

使用关键字的一部分来计算散列存储位置的方法

3.平方取中法

平方后取中间的三位数,适合子不知道关键字的分布,而位数又不是很大的情况。

4.折叠法
  • 将关键字从左到右分割成位数相等的几部分(注意最后一部分位数不够时可以短些) ,然后将这几部分叠加求和,并按散列表表长,取后几位作为散列地址。

  • 折叠法事先不需要知道关键字的分布,适合关键字位数较多的情况

5.随机数法

选择一个随机数,取关键字的随机函数值为它的散列地址

6.除留取余法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值