图解哈希表及其原理

哈希表(Hash Table),又称散列表,是一个使用哈希函数将键值对映射到数组的数据结构。文章介绍了哈希碰撞及其解决方法,包括数组+链表和数组+二叉树的实现,并提供了直观的图解。
摘要由CSDN通过智能技术生成
  • 哈希表(Hash Table)其实也叫散列表,是一个数据结构。

  • 哈希表本质上就是一个数组,只不过数组存放的是单一的数据,而哈希表中存放的是键值对(key - value pair)。

  • key 通过哈希函数(hash function)得到数组的索引,进而存取索引位置的值。

  • 不同的 key 通过哈希函数可能得到相同的索引值,此时,产生了哈希碰撞。

  • 通过在数组中插入链表或者二叉树,可以解决哈希碰撞问题。

引言

哈希这个词想必大家经常听到,这也说明了它使用的频繁程度,HashMap 和 HashTable 都与哈希这个词有关系。那哈希是什么,要搞清楚它,我们得先来说下哈希表。

什么是哈希表?

哈希表(Hash Table) 是一种用于存储 键值对 的基本数据结构。在 C++ 中,哈希表使用 哈希函数 来计算数组的索引,进而存取数组中对应索引位置的值。

百科定义:

散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值