数据结构——哈希表

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

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

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

而什么是散列表呢?

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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容