哈希表- Hero · 算法 · Hello 算法

哈希表

「哈希表 hash table」,又称「散列表」,它通过建立键 key 与值 value 之间的映射,实现高效的元素查询。具体而言,我们向哈希表中输入一个键 key ,则可以在 时间内获取对应的值 value 。

哈希表的常用操作

初始化、查询操作、添加键值对和删除键值对

哈希表的实现

哈希函数的作用是将一个较大的输入空间映射到一个较小的输出空间。在哈希表中,输入空间是所有 key ,输出空间是所有桶(数组索引)。换句话说,输入一个 key ,我们可以通过哈希函数得到该 key 对应的键值对在数组中的存储位置

哈希冲突与扩容

从本质上看,哈希函数的作用是将所有 key 构成的输入空间映射到数组所有索引构成的输出空间,而输入空间往往远大于输出空间。因此,理论上一定存在“多个输入对应相同输出”的情况。

哈希冲突

链式地址

开放寻址

线性探测

平方探测

多次哈希

编程语言的选择

  • Python 采用开放寻址
  • Java和Go采用链式地址

哈希算法

常见哈希算法

  • MD5
  • SHA-1
  • SGA-2
  • SHA-3

哈希表- Hero · 算法 · Hello 算法
https://wanmeishijie.xyz/notes/hero/algo/hello-algo/第6章 哈希表/
作者
发布于
2024年2月1日
许可协议