数据结构-散列表

列表(Hash Table),又称哈希表,是一种数据结构,特点是:数据元素的关键字与其存储地址直接相关
例:有一堆数据元素,关键字分别为{19,14,23,1,68,20,84,27,55,11,10,79},散列函数H(key)=key%13
若不同的关键字通过散列函数映射到同一个值,则称它们为“同义词”
通过散列函数确定的位置已经存放了其他元素,则称这种情况为“冲突”
数据结构-散列表_第1张图片
用拉链法(又称链接法、链地址法)解决‘冲突’:把所有“同义词”存储在一个链表中

散列查找

数据结构-散列表_第2张图片
数据结构-散列表_第3张图片
数据结构-散列表_第4张图片
数据结构-散列表_第5张图片

数据结构-散列表_第6张图片
数据结构-散列表_第7张图片
数据结构-散列表_第8张图片
数据结构-散列表_第9张图片

常见的散列函数

设计目标–让不同关键字的冲突尽可能地少
除留余数法—H(key)=key%p
散列表表长为m,取一个不大于m但最接近或等于m的质数p
质数又称素数。指除了1和此整数自身外,不能被其他自然数整除的数
数据结构-散列表_第10张图片
数据结构-散列表_第11张图片
数据结构-散列表_第12张图片
数据结构-散列表_第13张图片
数据结构-散列表_第14张图片
数据结构-散列表_第15张图片
数据结构-散列表_第16张图片
数据结构-散列表_第17张图片

处理冲突的方法–开放定址法

数据结构-散列表_第18张图片
数据结构-散列表_第19张图片
数据结构-散列表_第20张图片
数据结构-散列表_第21张图片
数据结构-散列表_第22张图片
数据结构-散列表_第23张图片
数据结构-散列表_第24张图片
数据结构-散列表_第25张图片
数据结构-散列表_第26张图片
数据结构-散列表_第27张图片
数据结构-散列表_第28张图片
数据结构-散列表_第29张图片

查找操作

数据结构-散列表_第30张图片
数据结构-散列表_第31张图片
数据结构-散列表_第32张图片
数据结构-散列表_第33张图片
数据结构-散列表_第34张图片
数据结构-散列表_第35张图片

删除操作

数据结构-散列表_第36张图片
数据结构-散列表_第37张图片
数据结构-散列表_第38张图片

查找效率分析(ASL)

image.png
image.png
image.png

平方探测法

数据结构-散列表_第39张图片
数据结构-散列表_第40张图片
数据结构-散列表_第41张图片
数据结构-散列表_第42张图片

伪随机序列法

数据结构-散列表_第43张图片
数据结构-散列表_第44张图片
数据结构-散列表_第45张图片
数据结构-散列表_第46张图片

你可能感兴趣的:(数据结构,数据结构,散列表)