二次散列学习

1.介绍

二次散列(Double Hashing)是一种解决哈希冲突(hash collision)的方法是的,它正是在发生哈希冲突时用到的 ,而且是一种非常经典、效果很好的开放定址法(Open Addressing)

二次散列 = 用两个不同的哈希函数

当第一次哈希定位的位置发生冲突时,用第二个哈希函数来决定"下一次探测的步长"。

复制代码
// 第 i 次探测位置是,i从0开始计数:
index_i = (h1(key) + i * h2(key)) % N

2.常见的哈希冲突解决方案

二次散列能有效避免 Primary Clustering(主聚集)

若忘记了设置key,导致key都是0,开启二次散列会有助于减少冲突吗?

不会,本质上没有任何帮助,甚至可能更糟。不同 key → 不同的 h2(key) → 不同的探测路径。

相关推荐
一隅论数智1 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
倒头就睡的小比特1 天前
算法竞赛C++常用的STL
c++·算法
小羊没烦恼!1 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
XiHongShi20161 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本1 天前
离散数学第六课
学习·离散数学
猎头南楼1 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
AI职业加油站1 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
旖旎夜光1 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
wzdark1 天前
大规模并行计算中的负载均衡算法研究4
算法