news 2026/8/14 8:51:58

HASH表

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
HASH表

HASH函数构造


构造函数的常用方法(下面为了叙述简洁,设 h(k) 表示关键字为 k 的元素所对应的函数值):

为简单起见,假定关键码是定义在自然数集合上,常见的哈希函数构造方法有:

1、直接定址法


以关键字Key本身或关键字加上某个数值常量C作为散列地址的方法。散列函数为:h(Key)= Key+C,若C为0,则散列地址就是关键字本身。

2、除余法


选择一个适当的正整数m,用m去除关键码,取其余数作为地址,即:h(Key)= Key % m,这个方法应用的最多,其关键是m的选取,一般选m为小于某个区域长度n的最大素数(如例1中取m=13),
为什么呢?就是为了尽力避免冲突。假设取m=1000 ,则哈希函数分类的标准实际上就变成了按照关键字末三位数分类,这样最多1000类,冲突会很多。
一般地说,如果 m 的约数越多,那么冲突的几率就越大。而素数的约数是最少的,因此我们选用大素数。记住“素数是我们的得力助手”。

3、数字分析法


常有这样的情况:关键码的位数比存储区域的地址的位数多,在这种情况下可以对关键码的各位进行分析,丢掉分布不均匀的位留下分布均匀的位作为地址。

本方法适用于所有关键字已知,并对关键字中每一位的取值分布情况作出了分析。

【例】 对下列关键码集合(表中左边一列)进行关键码到地址的转换,要求用三位地址。

分析:

键码是9位的,地址是3位的,需要经过数字分析丢掉6位。丢掉哪6位呢?显然前3位是没有任何区分度,第5位1太多、第6位基本都是8和9、第7位都是3、4、5,这几位的区分度都不好,而相对来说,第4、8、9位分布比较均匀,所以留下这3位作为地址(表中右边一列)。

4、平方取中法


将关键码的值平方,然后取中间的几位作为散列地址。具体取多少位视实际要求而定,取哪几位常常结合数字分析法。

【例】
将一组关键字(0100,0110,1010,1001,0111)平方后得(0010000,0012100,1020100,1002001,0012321),若取表长为1000,则可取中间的三位数作为散列地址集:(100,121,201,020,123)。

5、折叠法


如果关键码的位数比地址码的位数多,而且各位分布较均匀,不适于用数字分析法丢掉某些数位,那么可以考虑用折叠法。折叠法是将关键码从某些地方断开,分关键码为几个部分,其中有一部分的长度等于地址码的长度,然后将其余部分加到它的上面,如果最高位有进位,则把进位丢掉。

一般是先将关键字分割成位数相同的几段(最后一段的位数可少一些),段的位数取决于散列地址的位数,由实际需要而定,然后将它们的对应位叠加和(舍去最高位进位)作为散列地址。

6、基数转换法


将关键码值看成在另一个基数制上的表示,然后把它转换成原来基数制的数,再用数字分析法取其中的几位作为地址。一般取大于原来基数的数作转换的基数,并且两个基数要是互质的。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/14 0:25:15

Langchain-Chatchat构建服装品牌穿搭建议智能助手

Langchain-Chatchat构建服装品牌穿搭建议智能助手 在电商平台的客服后台,一个常见场景是:用户反复询问“梨形身材怎么穿显瘦?”“小个子适合什么款式的风衣?”,而客服人员需要不断翻阅搭配手册、查找产品目录才能作答。…

作者头像 李华
网站建设 2026/8/14 4:45:51

Langchain-Chatchat问答系统灰度阶段合作伙伴拓展

Langchain-Chatchat 本地知识库问答系统的实践探索 在企业智能化转型的浪潮中,一个看似简单却长期困扰组织的问题正日益凸显:如何让员工快速、准确地获取散落在成百上千份文档中的内部知识?传统的关键词搜索面对“年假是否包含法定节假日”这…

作者头像 李华
网站建设 2026/8/13 23:10:20

Langchain-Chatchat能否实现自动问答知识传播路径?

Langchain-Chatchat能否实现自动问答知识传播路径? 在企业数字化转型的浪潮中,一个看似简单却长期困扰组织效率的问题正日益凸显:员工每天花大量时间翻找文档——“年假怎么申请?”、“报销标准是什么?”、“新项目流程…

作者头像 李华
网站建设 2026/8/13 17:55:53

79、Windows Media Center功能全解析

Windows Media Center功能全解析 音乐相关功能 查看歌曲列表(View Song List) 该功能会显示当前播放队列,同时提供了一系列操作。你可以编辑和清空队列,将当前队列保存为播放列表,打乱队列顺序以实现随机播放,还能设置队列自动重复播放。 最后,你可以将播放列表刻录到…

作者头像 李华
网站建设 2026/8/13 8:08:42

80、深入探索Windows Media Center的设置与优化

深入探索Windows Media Center的设置与优化 1. 视频背景颜色调整 你可以通过选择“视频背景颜色”下的“-”或“+”号来更改视频背景颜色。这一操作会将黑色设置从100%纯黑调整为不同灰度的颜色,有助于缓解特定类型的眼疲劳。完成选择后,点击“保存”按钮,即可更新个人资料…

作者头像 李华
网站建设 2026/8/12 21:36:59

东欧市场掘金指南:3个Yandex投放策略让跨境电商流量翻倍

当跨境电商企业将目光投向东欧市场时,Yandex.Direct往往是被低估的流量金矿。作为俄罗斯及周边国家市场份额超过60%的搜索平台,Yandex在东欧地区的商业价值相当于中国的百度。但数据显示,仅17%的中国跨境电商系统化运营Yandex广告&#xff0c…

作者头像 李华