1 / 2
文档名称:

散列表与哈希算法.doc

格式:doc   大小:39KB   页数:2页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

散列表与哈希算法.doc

上传人:小辰GG 2022/6/5 文件大小:39 KB

下载得到文件列表

散列表与哈希算法.doc

文档介绍

文档介绍:散列表与哈希算法
散列表
散列表(HashTable,也叫哈希表),是根据键(Key)直接访问在内存存储位置的数据结构。
其实现原理是:通过散列函数(也叫哈希函数)将元素的键映射为数组下标(转化后的值叫做散列值或哈希值),然后在对应下列表操作效率,设计一个优秀的散列函数至关重要,我们平时经常使用的md5函数就是一个散列函数,但是其实还有其他很多自定义的设计实现,要根据不同场景,设计不同的散列函数来减少散列冲突,而且散列函数本身也要很简单,否则执行散列函数本身会成为散列表的瓶颈。我们日常很少会自己去设计散列函数,但是做一些简单的了解还是有必要的。
直接定址法数字分析法除数留余法
通常有以下几种散列函数构造方法:
即f(key)=a*key+b,f表示散列函数,a、b是常量,key是键值
即对数字做左移、右移、反转等操作获取散列值
即f(key)=key%p,p表示容器数量,这种方式通常用在将数据存放到指定容器中,如何决定哪个数据放到哪个容器,比如分
表后插入数据如何处理(此时p表示拆分后数据表的数量),分布式Redis如何存放数据(此时p表示几台Redis服务器)
*随机数法:即f(key)=random(key),比如负载均衡的random机制
以上只是一些比较场景的散列函数设计思路,还有很多其他的设计方法,这里就不一一列举了。
散列冲突处理
设计再好的散列函数也不能完全避免散列冲突,我们只能优化自己的实现让散列冲突尽可能少出现罢了,如果出现了散列冲突,该如何处理呢?下面给出一些思路:
*开放寻址法:该方法又可以细分为三种一一线性寻址、二次探测、随机探测。线性寻址表示出现散列冲突之后,就去寻找下一个空的散列地址;线性寻址步长是1,二次探测步长是线性寻址步长的2次方,其它逻辑一样;同理,随机探测每次步长随机。不管哪种探测方法,散列表中空闲位置不多的时候,散列冲突的概率就会提高,为了保证操作效率,我们会尽可能保证散列表中有一定比例的空闲槽位,我们用装载因子来表示空位的多少,装载因子=填入元素/散列表长度,装载因子越大,表明空闲位置越少,冲突越多,散列表性能降低。
•再散列函数法:发生散列冲突后,换一个散列函数计算散列值
•链地址法:发生散列冲突后,将对应数据链接到该散列值映射的上一个值之后,即将散列值相同的元素放到相同槽位对应的链表中。链地址法即使在散列冲突很多的情况下,也可以保证将所有数据存储到散列表中,但是也引入了遍历单链表带来性能损耗。
总结
介绍完以上内容之后,想必你对如何打造工业级散列表已经心中有数。主要考虑因素包含以下几个方面:
•散列函数设置合理,不能太过复杂,成为性能瓶颈;
设置装载因子阈值,支持动态扩容,装载因子阈值设置要充分权衡时间、空间复杂度;
•如果一次性扩容耗时长,可采取分批扩容的策略,达到阈值后只申请空间,不搬移数据,以后每插入一条数据,搬移一个旧数据,最后逐步完成搬移,期间为了兼容新老散列表查询,可以先查新表,再查老表;
*散列冲突解决办法:开放寻址法在数据量较小、装载因子小的时候(小于1)选用;链表法可以容忍装载因子大于1,适合存储大对象、大数据量的散列表,且更加灵活,支持更多优化策略。
补充一张链地址法处理散列(哈希)冲突的图示:
哈希算法的概念和特性
我们前面分享了散列

最近更新

BIM技术在既有桥梁运维管理中的应用 3页

BIM技术在《混凝土结构平法识图》课程中的应用.. 3页

2020年新编汽车售后服务管理C带答案名师精品资.. 5页

汽车NVH0奇瑞顾总工讲座 29页

B2C生鲜电商物流服务质量对消费者忠诚度的影响.. 3页

A担保公司担保授信审批岗位员工绩效管理优化策.. 3页

2025年项目部安全生产目标考核表 13页

ARTP+UV复合诱变结合异源ybgE基因表达构建L--.. 3页

APPEG复配阻燃硬质聚氨酯泡沫的制备及性能研究.. 3页

ABAP程序性能优化研究 3页

91型双圆弧齿轮凸弧单点啮合变形的有限元分析.. 3页

825初轧机推床推板间距差调整方法探讨 3页

660兆瓦机组在不改造情况下达到全负荷投运脱硝.. 3页

5种动物源成分PCR和RPA检测可视化鉴定方法的研.. 3页

5A01铝合金焊接接头性能研究 3页

3种前处理方法对糙米发芽率及抗氧化性的比较 3页

3-羟基丁酮的研究进展 3页

250吨国产压铸机噪声和振动故障的分析与排除 3页

电器店改造免租期协议须知3篇 49页

电器厂改造协议样本3篇 55页

2018年宜昌产区宽皮柑橘产销形势分析 3页

2017-2018国内外热门激光电视综合测评 大众横.. 3页

2025年非标制作通用工艺 7页

2012年“中国ECR优秀案例”之二 构建基于移动.. 3页

2025年商丘学院单招职业技能测试题库精编 61页

2025年长沙电力职业技术学院单招职业技能测试.. 61页

普通动物学第15章圆口纲 26页

2024年湖南水利水电职业技术学院单招职业技能.. 89页

党员出国备案表 1页

2024年湖南水利水电职业技术学院单招职业技能.. 187页