1. 散列表的概念

散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。

给定表M,存在函数f(key),对任意给定的关键字值key,代入函数后若能得到包含该关键字的记录在表中的地址,则称表M为哈希(Hash)表,函数f(key)为哈希(Hash) 函数。

散列函数:一个把查找表中的关键字映射成该关键字对应的地址的函数,记为Hash(key)=Addr
2.0 了解散列表 - 图1
哈希碰撞:散列函数可能会把两个或两个以上的不同关键字映射到同一地址,称这种情况为“冲突”(哈希碰撞),这些发生不同碰撞的关键字称为同义词。

2. 构造散列函数

image.png
image.pngimage.pngimage.png
image.png

3. 散列函数冲突处理办法

image.pngimage.pngimage.pngimage.png

4. 散列表的查找

image.png
image.png
image.png
image.png