哈希表

喜夏-厌秋 提交于 2019-11-29 13:16:52

1. 为什么需要哈希表?

哈希表提供了key与value的映射关系,给出key可以高效地找到匹配的value,时间复杂度接近于O(1),适用于空间足够的情况下快速查找。

2. 哈希函数

哈希函数类似于中转站,用于将key与数组下标进行映射

 

哈希函数的特点:

(1) 输出值得数据长度不变;

(2) 相同的输入输出也一定相同;

(3) 输入相似的数据,即使相差一个比特位,输出也会截然不同;

(4) 输入截然不同的值,输出的哈希值会以低概率出现;

(5) 不可能根据哈希值返回计算出原始数据;

(6) 计算相对简单。

3. 哈希表的读写操作

哈希冲突: 指的是随着Entry的增加,不同Entry计算出来的额数组下标是相同的。

解决哈希冲突的办法: 开放寻址法和链表法。

为什么需要扩容?

经过多次元素插入后,哈希表达到一定的饱和度时,哈希冲突的概率会提高,这样一来,大量的元素拥挤在相同的数组下标位置,形成很长的链表,对后续的插入操作和查询操作的性能都有很大影响。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!