数据结构——哈希表

哈希表(hash table)又称为散列表,或者散列映射、映射、字典和关联数组等。是一种根据键(key)直接访问在内存存储位置的数据结构,也就是我们常说的键值对。

在之前我们讲过数组,链表,栈,这些数据结构,都是不包含默认逻辑的,可以直接反应数据在内存中的存储位置以及状态。而相较于其他的数据结构,哈希表是一种包含默认逻辑的数据结构,默认逻辑即为需要使用散列函数才能够确定键对应的元素的地址。

散列函数:一个映射函数,能够将输入映射为一个数字,需要保证的是,每次输入相同数据的时候返回的数字必须一致,以及不同的输入需要返回不同的数字。

而什么是散列表呢?

散列表是一个数组,其中储存有通过散列函数返回的结果。如图,需要保证的是不同的输入返回不同的索引,同样的输入返回相同的索引。

数据结构——哈希表_第1张图片

如果出现两个key返回同样的地址,就是所谓的冲突。一般我们使用语言都有很好的解决,并不需要我们自己来设计,不需要过多关注,如果有兴趣的话无非就是考虑一下降低填装因子和使用更加优良的散列函数。

你可能感兴趣的:(数据结构——哈希表)