哈希表原理

本文详细介绍了哈希表的工作原理,通过哈希函数将数据映射到存储位置,以减少查找时间。当发生哈希冲突时,通过线性探测再散列和双哈希函数等方式解决。实例展示了不同数据顺序下的哈希表构建过程,强调了如何有效避免和处理冲突以优化查找效率。
摘要由CSDN通过智能技术生成

转载自 哈希表(散列表)的运作原理

哈希函数是获取数据下标的函数:

为了查找的时候,减少计算次数(链表等在查找时计算次数很多)
在这里插入图片描述
在这里插入图片描述


哈希冲突:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述数字容易挨在一起
在这里插入图片描述
数据顺序: 15,2,28,4,38,12
15 mod 13 = 2 放到下标2位置
2 mod 13 = 2 下标2位置已经被占,+1后 下标3的位置未被占,放入
28 mod 13 = 2 下标2位置已经被占,+1后 下标3的位置也被占,+1后下标3的位置没被占,放入
4 mod 13 = 4 下标4位置已经被占,+1后 下标5的位置未被占,放入
38
38 mod 13 = 12
12 mod 13 = 12 下标12位置已经被占,+1后 (首位循环)下标0的位置未被占,放入


在这里插入图片描述

在这里插入图片描述
数据顺序: 15,2,28,19,10
15 mod 13 = 2 放入下标 2 位置
2 mod 13= 2 下标 2 位置已被占用,这次为下标 2 的第一次查找位置, 2 + 1 2 = 3 2+1^{2}=3 2+12=3,放入
28 mod 13 = 2 下标 2 位置已被占用,这次为下标 2 的第二次查找位置, 2 + 2 2 = 6 2+2^{2}=6 2+22=6,放入
19 mod 13 = 6 下标 6 位置已被占用,这次下标 6的为第一次查找位置, 6 + 1 2 = 7 6+1^{2}=7 6+12=7,放入
10 mod 13 = 10 放入下标 10 位置


使用两个哈希函数在这里插入图片描述
在这里插入图片描述

数据顺序: 15,2,18,28
15 mod 13 = 2
2 mod 13 = 2 遇到冲突,使用第二个哈希函数: 7-(2 mod 7)= 7-2=5,从下标2往后数5个,2+5=7,放入
18 mod 13 = 5 放入
28 mod 13 = 2 遇到冲突,使用第二个哈希函数: 7-(28 mod 7)= 7-0=7,从下标2往后数7个,2+7=9,放入


哈希表:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值