【哈希冲突解决】线性探测再散列和二次探测再散列

本文介绍了哈希冲突解决的两种方法:线性探测再散列和二次探测再散列。线性探测法中,当哈希地址冲突时,沿着表往后寻找空位。而在二次探测再散列中,冲突时查找的位置由初始位置加上或减去平方数序列确定。通过具体实例展示了这两种方法如何解决冲突并构造哈希表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定义

散列(Hashing)是计算机科学中一种对资料的处理方法,通过某种特定的函数/算法(称为散列函数/算法)将要检索的项与用来检索的索引(称为散列,或者散列值)关联起来,生成一种便于搜索的数据结构(称为散列表)。二次再散列法是指第一次散列产生哈希地址冲突,为了解决冲突,采用另外的散列函数或者对冲突结果进行处理的方法。

算法公式

  • 线性探测法
    f(key) = (f(key)+di) MOD m (di=1,2,3,......,m-1)
  • 二次探测法
    f(key) = (f(key)+di) MOD m (di = 1^2, -1^2, 2^2, -2^2,……, q^2, -q^2, q <= m/2)

实例

线性探测再散列

例如:哈希函数为: H(key) = key %11,key 为关键字,采用开放地址法中的线性探测再散列解决冲突,依次输入

9 个关键字,19,01,23,14,55,68,11,82,36,构造哈希表(表长=11)

散列地址 0 1 2 3 4 5 6 7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东方隐侠安全团队-千里

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值