传统的查找都是通过"比较"来实现的 .
比如说,顺序查找是"等于"和"不等于"来比较.
改进一些的方法,就是折半查找,二叉排序树,B-树查找,通过">","<","="来比较的.查找的效率依赖于查找过程中所进行的比较次数.这些查找方法元素在结构中的位置是随机的,存在不确定的关系.
最理想的查找的方法就是我们可以根据要查找的元素关键字key直接得到地址.
比如说,你在学校要找一个人,根据他的学号就能精准的找到他.
学号和这个人是相关联的,也就是说必须在要查找的元素与位置之间找到一个关联的地方,通过某个函数f,使得
存储位置=f{关键字}
那么我们可以通过查找关键字不需要比较就可以获得需要的记录的存储位置.这就是散列技术
散列技术:是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key).查找时根据这个确定的对应关系找到给定key的映射f(key),若查找集合中存在这个记录,则必定在f(key)的位置上.
我们将这种对应关系成为散列函数(哈希函数).按这个思想,采用散列技术将记录存储在一块连续的存储空间中,这块连续的存储空间称为散列表和或哈希表.
整个哈希过程分为两步:
1.构造表.
2.根据元素查找位置.