【数据结构】哈希查找(散列查找)

本文介绍了哈希查找的概念,包括散列函数的构造方法如数字分析法、平方取中法、折叠法和除留余数法,以及处理冲突的开放地址法和链地址法。散列查找通过直接计算关键字的散列地址,减少了查找时间,但冲突的处理是关键。文章详细阐述了冲突处理策略和散列查找的过程。

主要内容

数字分析法

平方取中法

折叠法

除留余数法

开放地址法

链地址法


 

前提

如果在数据元素的存储位置和其关键字之间建立某种直接关系,那么在进行查找时,就无需逐个比较关键字或者只做少数次的比较,并按照直接关系由关键字找到相应的记录,这就是散列查找法(Hash Search)的思想。它通过对元素的关键字值进行某种运算,直接求出元素的地址。

 

基本概念:

1)散列函数:p = H(key);p表示散列地址,key表示关键字,函数H()表示关键字与存储位置之间的某种关系。

2)散列表:一维数组,数组下标表示散列地址。

3)冲突、同义词:不同的关键字可能会求得同一个散列地址,这样的情况称为冲突,造成这种情况的关键字称为同义词

在实际应用中,理想化的、不产生冲突的散列函数是基本不存在的,这是因为散列表的关键字取值集合往往大于空间的地址集合。

散列函数是多对一的映射,冲突是不可避免的。我们只能根据具体情况,构造一个尽可能减少冲突的散列函数。

而一旦冲突发生,我们必须采取相应的措施及时予以处理。

 <

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值