散列表的查找技术

本文深入探讨了散列技术,包括散列函数的构造方法如直接定址法、除留余数法等,以及冲突处理策略如开放定址法和链地址法。散列表通过散列函数将记录映射到存储位置,解决查找效率问题。文章还讨论了处理冲突的拉链法和公共溢出区方法,分析了它们的优缺点。

散列函数的构造
直接定址法
除留余数法
数字分析法
平方取中法
折叠法(分段叠加法)
冲突处理方法
开放定址法
链地址法
建立公共溢出区
散列表:采用散列技术将记录存储在一块连续的存储空间中,这块连续的存储空间称为散列表。
散列函数:将关键码映射为散列表中适当存储位置的函数。
散列地址:由散列函数所得的存储位置址 。
散列技术的关键问题:
⑴ 散列函数的设计。如何设计一个简单、均匀、存储利用率高的散列函数。
⑵ 冲突的处理。如何采取合适的处理冲突方法来解决冲突。
散列函数
直接定址法
除留余数法
数字分析法
平方取中
折叠法
冲突的 处理
开散列方法( open hashing,也称为拉链法,separate chaining ,链地址法)
闭散列方法( closed hashing,也称为开地址方法,open addressing ,开放定址法)
建立公共溢出区
线性探测法散列表
假设给定的值为K,根据所设定的散列函数h,计算出散列地址h (K)
否则将该地址中的值与K比较,若相等则检索成功,算法结束
否则,按建表时设定的处理冲突方法查找探查序列的下一个地址,如此反复下去
直到某个地址空间未被占用(查找不成功,可以插入),算法结束
或者关键码比较相等(有重复记录,不需要插入)为止,算法结束
如果探测完整个hash表,都没有进行插入或查找失败,则抛出空间异常(hash表容量不足)
处理冲突的方法——拉链法(链地址法)
基本思想:将所有散列地址相同的记录,即所有同义词的记录存储在一个单链表中(称为同义词子表),在散列表中存储的是所有同义词子表的头指针。
用拉链法处理冲突构造的散列表叫做开散列表。
设n个记录存储在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值