一、哈希表
1. 存储结构(拉链法、开放寻址法)
散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。
给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。
简单来讲,哈希表就是散列表,类似于之前学的离散化:https://blog.csdn.net/m0_51339444/article/details/128795765,主要解决:数据的数量比较少,但是数据的范围非常大的问题。
哈希表常见的存储方法是mod,即假如开辟的空间为N,输入数据x存放的位置是 x % N(如果输入包括负数,就(x % N + N)% N),当然,这肯定会存在冲突,可能存在多个数对N取余的结果相同,这就需要解决冲突,常见的方法有:(1)拉链法;(2)开放寻址法
拉链法
:将元