二次散列学习

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) → 不同的探测路径。

相关推荐
十安_数学好题速析6 小时前
【多选】成比之道:巧解三角形中比例综合
笔记·学习·高考
alphaTao6 小时前
LeetCode 每日一题 2026/4/27-2026/5/3
算法·leetcode
嵌入式小企鹅6 小时前
RISC-V车规专委会成立、AI模型集中开源、半导体产能加速爬坡
人工智能·学习·ai·程序员·算力·risc-v·半导体
我想我不够好。6 小时前
消防监控学习 4.30 1.5hour
学习
全栈工程师修炼指南6 小时前
Moodle | ‌开源学习管理系统简体中文包安装配置
学习·开源
穿越临界点6 小时前
动态规划(DP)
算法·动态规划·贝尔曼
努力努力再努力FFF6 小时前
运维工程师想学习AI来提升系统自动化水平,该怎么切入?
运维·人工智能·学习
木木_王6 小时前
嵌入式Linux学习 | 数据结构(Day06)全解:线性表 + 栈队列 + 静态库 / 动态库(原理 + 代码 + 编译实战 + 易错点)
linux·数据结构·笔记·学习
-Springer-6 小时前
STM32 学习 —— 个人学习笔记11-2(SPI 通信外设 & 硬件 SPI 读写 W25Q64)
笔记·stm32·学习
leoufung6 小时前
LeetCode 50. Pow(x, n):从 O(n) 到 O(log n) 的快速幂彻底搞懂
算法·leetcode·职场和发展