大白话解释哈希碰撞是什么以及如何解决
创作时间:
作者:
@小白创作中心
大白话解释哈希碰撞是什么以及如何解决
引用
CSDN
1.
https://blog.csdn.net/weixin_44129618/article/details/122499313
哈希表(Hash Table)是计算机科学中一种非常重要的数据结构,广泛应用于各种场景中的数据存储和检索。本文将用通俗易懂的语言,为您解释哈希表的基本原理、什么是哈希碰撞,以及如何解决哈希碰撞问题。
一、哈希表如何存数据
哈希表的本质其实就是数组,哈希表中通常存放的是键值对Entry。
这里的id是个key,哈希表就是根据key值来通过哈希函数计算得到一个值,这个值就是下标值,用来确定这个Entry要存放在哈希表中哪个位置。
二、哈希碰撞
哈希碰撞指的是,两个不同的值(比如张三、李四的id)经过哈希计算后,得到的哈希值相同,后来的李四要放到原来的张三的位置,但是数组的位置已经被张三占了,导致冲突。
三、解决方法
3.1 开放寻址法
开放寻址法指的是,当前数组位置1被占用了,就放到下一个位置2上去,如果2也被占用了,就继续往下找,直到找到空位置。
3.2 拉链法
将所有关键字为同义词的记录存储在同一线性链表中。
拉链法采用的是链表的方式,这个时候位置4就不单单存放的是Entry了,此时的Entry还要额外保存一个next指针,指向数组外的另一个位置,将李四安排在这里,张三那个Entry中的next指针就指向李四的这个位置,也就是保存的这个位置的内存地址。
如果还有冲突,就把又冲突的那个Entry放到一个新位置上,然后李四的Entry指向它,这样就形成一个链表。
热门推荐
社保单位和劳动合同单位不一致怎么办
教授特别欣赏的中国留学生的“邮件礼仪”
全球顶级AI人才调查:最精英的首选美国就业,中国输出最多
如何有效改善头发出油问题,保持清爽秀发的实用建议
深入解析古诺模型及其在经济学中的应用
蛀牙是什么?认识蛀牙的成因、后果及治疗方法
电解制氢效率的学术定义和计算方法详解
档案管理人员在工作总结中如何描述团队合作的具体案例?
电脑在不联网的情况下如何查看MAC地址
左胸下方是什么部位
多梦但不失眠怎么调理
孕妇脾胃虚弱湿气重调理方法
10种公认阳台最好养的花
建设工程管理就业前景与方向全解析
守护一汪碧水 荆门161艘"三无"船舶上岸
VBA大量运算效率提升指南
你知道汽车是如何分类的吗?
山海相连 共享机遇——从指数矩阵看山西经济发展新动能
禅语感悟人生的句子:领悟内心宁静与智慧的启迪
前悬架和后悬架有哪些 前悬架和后悬架类型哪种好
马斯克用AI,3天查出美国10年黑账!
关键路径问题的C++实现:从理论到代码详解
全国人大代表杨金龙:推动职业教育与产业深度融合
零申报操作流程 网上如何零申报纳税
西甲焦点战前瞻:奥萨苏纳 VS 巴伦西亚,近期状态与对决看点
奶茶里可能根本没有奶,甚至没有茶……新式茶饮,谁更健康?
管理学理论的历史演变
金花瓶楷梅花2:如何通过艺术作品展现中国传统文化的创新与魅力
粉条泡发完全指南:时间与水温的黄金搭配
红烧草鱼这样做鲜香滑嫩,开胃下饭,无腥味,颜值高做法又简单