第三章 哈希表

简介: 第三章 哈希表

一、概念

1.1哈希表

哈希表(hash table),国内称为散列表

哈希表是根据关键码的值而直接进行访问的数据结构

可以把哈希表理解成数组;哈希表是根据关键码也就是数组索引下标访问元素:

那么哈希表能解决什么问题呢,一般哈希表都是用来快速判断一个元素是否出现集合里。

例如要查询一个名字是否在这所学校里。

1.2哈希函数

哈希函数,把学生的姓名直接映射为哈希表上的索引,然后就可以通过查询索引下标快速知道这位同学是否在这所学校里了。

哈希函数相当于一个转换器,一个加密解码的过程:

1.3哈希碰撞

如图所示,小李和小王都映射到了索引下标 1 的位置,这一现象叫做哈希碰撞

一般哈希碰撞有两种解决方法, 拉链法线性探测法

二、常见的三种哈希结构

当我们想使用哈希法来解决问题的时候,我们一般会选择如下三种数据结构。

  • 数组
  • set(集合)
  • map(映射)

总结一下,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法

但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。

三、题型

  • 数组哈希法

242.有效的字母异位词

  • set集合哈希法

349.两个数组的交集

15.三数之和

  • map映射哈希法

1.两数之和

454.四数相加II

目录
相关文章
|
5月前
|
存储 索引
什么是哈希表?它的工作原理是什么?
在我们的日常生活中,我们经常需要存储和查找各种信息,这些信息可能是电话号码,地址,或者是商品的价格等等。这些信息的存储和查找,就像是我们在一个巨大的仓库中存放和寻找物品。这个仓库就是数据结构,而其中一个最常用的,也是最高效的数据结构就是哈希表。
72 2
|
2天前
|
算法 Java 数据库
数据结构与算法学习十五:哈希表
这篇文章详细介绍了哈希表的概念、应用实例、实现思路,并提供了使用Java实现的哈希表代码。
数据结构与算法学习十五:哈希表
|
9天前
|
存储 JSON 索引
聊一聊喜闻乐见的哈希表
聊一聊喜闻乐见的哈希表
20 2
|
2月前
|
存储 Java
数据结构中的哈希表(java实现)利用哈希表实现学生信息的存储
这篇文章通过Java代码示例展示了如何实现哈希表,包括定义结点类、链表类、数组存储多条链表,并使用简单的散列函数处理冲突,以及如何利用哈希表存储和查询学生信息。
数据结构中的哈希表(java实现)利用哈希表实现学生信息的存储
|
4月前
|
存储
哈希表的设计与实现
哈希表的设计与实现
24 1
|
5月前
|
存储 Java Serverless
从 0 到 1 读懂:哈希表
从 0 到 1 读懂:哈希表
|
5月前
|
算法 C++
c++算法学习笔记 (20) 哈希表
c++算法学习笔记 (20) 哈希表
|
5月前
一道题学会如何使用哈希表
一道题学会如何使用哈希表
|
5月前
|
存储 算法 安全
数据结构与算法 哈希表
数据结构与算法 哈希表
27 0
|
5月前
|
存储 安全
哈希表概述
哈希表概述