哈希表
1、作用:
用来快速判断一个元素是否出现在集合中,可以将查找元素的复杂度从O(n)降低到O(1).
2、哈希映射
(1)对于每一个给定的关键字key值,通过哈希函数映射 f(key) 之后,就可以得到一个在哈希表M中 记录该关键字的地址。
(2)通常的操作:
key % (总长度) = 哈希表M中的位置
每个关键字key对应的位置是固定的
(3)<font color="red"存储的数据结构
在python中,其实就是一个字典。
将每个元素都对应一个序号,构成key-value的形式,存在字典中。关键字key的值是元素,经过哈希表映射之后得到的位置是value的值。
当需要查找元素的时候,直接利用dict[key] = value 的形式就可以找到。
3、解决哈希碰撞问题
常用的解决方案有散列法和拉链法。散列法又分为开放寻址法和再散列法
4、哈希表的优势
(1)在列表查找中,使用最广泛的二分查找算法,复杂度为O(log2n),但其始终只能用于有序列表。普通无序列表只能采用遍历查找,复杂度为O(n)。
(2)拥有较为理想的哈希函数实现的哈希表,对其任意元素可以直接通过计算获取位置,查找速度始终为常数级,即O(1)。