一分钟搞懂“哈希表”

可以把哈希表理解为一个数组,每个索引对应一个存储位置,哈希表的索引并不像普通数组的索引那样,从0到length-1,而是由关键字(数据本身)通过哈希函数得到。

比如:我们将26个小写字母存储到数组 int a[26]中。
那么可以通过哈希函数来将数据本身与索引连接起来,这里我们使用index=key-'a' 作为哈希函数,这样形成的数组就是一分钟搞懂“哈希表”

哈希函数是不固定的,根据数据情况来写的,有时候不同的数据通过运算的结果是一样的,也就是索引是一样的,这样没法进行存储,那么就造成了哈希冲突,解决哈希冲突的方法有很多,最常用的就是开发定址法和链地址法。

关于哈希表使用中最重要的三个部分分别是:

1.哈希函数的设计

2.解决哈希冲突

3.哈希表实现时间和空间的平衡