转自公众号:程序猿小哈
哈希表与哈希(Hash)算法mp.weixin.qq.com![ae57dcbe77da6862500bf33f67c0167c.png](https://i-blog.csdnimg.cn/blog_migrate/56771a51c563608aa243e9b1297d724b.jpeg)
哈希表与哈希(Hash)算法
一、概述
假设有关键字为k
,则其值存放在f(k)
的存储位置
上.这样,不需比较便可直接取得所查记录.f(k)为Hash函数
,按这个思想建立的表为Hash表
.
但是在f(k)的计算过程中,会出现不同的k计算出相同的值,这也称为Hash冲突
,为了解决这个问题,我们还需要一个处理冲突的方法.
综上所述,根据Hash函数f(k)
和处理冲突的方法
将一组关键字
映射到一个有限的连续的地址集(区间)
上,并以关键字在地址集中的"像"作为记录在表中的存储位置,这种表便称为Hash表
,这一映射过程称为Hash造表或Hash,所得的存储位置称Hash地址
.
文字看不懂?看如下图就Hash计算过程
![e051c37ea855482d9068551847ea1ea8.png](https://i-blog.csdnimg.cn/blog_migrate/d22621318fb11049223af8cf66a4199e.png)