数据结构-散列表

123 阅读1分钟

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

散列查找

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

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

常见的散列函数

设计目标--让不同关键字的冲突尽可能地少 除留余数法---H(key)=key%p 散列表表长为m,取一个不大于m但最接近或等于m的质数p 质数又称素数。指除了1和此整数自身外,不能被其他自然数整除的数 image.png image.png image.png image.png image.png image.png image.png image.png

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

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

查找操作

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

删除操作

image.png image.png image.png

查找效率分析(ASL)

image.png image.png image.png

平方探测法

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

伪随机序列法

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