介绍
像线性数据结构在查找的时候,⼀般都是使⽤= 或者!= ,在折半查找或者其他范围查询的时候,可能会使⽤< 和> ,理想的时候,我们肯定希望不经过任何的⽐较,直接能定位到某个位置(存储位置),这种在数组中,可以通过索引取得元素。那么,如果我们将需要存储的数据和数组的索引对应起来,并且是⼀对⼀的关系,那不就可以很快定位到元素的位置了么?
只要通过函数f(k) 就能找到k 对应的位置,这个函数f(k) 就是hash 函数。它表示的是⼀种映射关系,但是对不同的值,可能会映射到同⼀个值(同⼀个hash 地址),也就是f(k1) = f(k2) ,这种现象我们称之为冲突或者碰撞。