直接定址表
当数据量有限时,通过将数据一一映射到数组,可以获得O(1)的时间复杂度。
哈希表
当真正被存储的数据量比实际可能的数据量要小很多时,哈希表就显示出它的威力来了。
关键字
尽可能的将关键字使用数字表示
哈希函数
一个好的哈希函数的标准: 任何一个关键字都有平等的机会映射到哈表表的每个槽位,并且与其他关键字无关。
通常使用的哈希算法有: 1. 取模
实现原理
通过使用哈希函数将关键字映射到数组的下标地址,但是,由于哈希表空间有限,所以会出现两个不同的关键字映射到了同一个数组下标的情况,因此需要冲突解决。
冲突解决的方法有: 1. 链式 2. 开放定址
负载因子
负载因子=已存节点数量/槽的数量,应尽量保持其值小于等于1。
应用
哈希表一般用于字典的底层实现