哈希值为什么会冲突

 我来答
会哭的礼物17
2022-07-25 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6569
采纳率:100%
帮助的人:38.4万
展开全部
1、哈希就是做一个映射,为的是查找快.冲突是zd因为映射毕竟是有一个范围的,这个范围可能会小于你原来的那个范围,所以可能好多个值映射了之后成为一个值了.
举例来说,可能希望查版找字符串比较快,你会用一种计算方法将一个字符串权映射为一个整数,而且要求这个数字在100以内.那么如果处理了10000个字符串,他们映射的值肯定会冲突.

2、hash:hashing定义了一种百将字符组成的字符串转换为固定长度度(一般是更短长度)的数值或索引值的方法,称为问散列法,也叫哈希法。
冲突:两个不同的关答键字,由于散列函数值相同,因而被内映射到同一表位置上。该容现象称为冲突(collision)或碰撞。

3、哈希计算就是努力的把比较大的数据存放到相百对较小的空间中。
最常见的哈希算法是取模法。
下面简单讲讲取模法的计算过程。
比如:数组的长度是5。这时有度一个数据是6。那么如何把这个
6存放到长度只有5的数组中呢。按照取模法,计算
6%5,结果是1,那么就把6放到数组下标是1的位问置。那么,7
就应该放到2这个位置。到此位置,哈希冲突还没有出现。
这时,有个数据是11,按照取模法,11%5=1,也等于1。那么
原来数组下标是1的地方已经有数了答,是6。这时又计算出1这个
位置,那么数组1这个位置,就回必须储存两个数了。这时,就叫
哈希答冲突。冲突之后就要按照顺序来存放了。
如果数据的分布比较广泛,而且储存数据的数组长度比较大。
那么哈希冲突就比较少。否则冲突是很高的。
具体的算法你要参照更加专业的书籍。
希望对你有帮助。
出自:百度知道
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式