当我们进行查找时,如果是顺序表查找,要找的关键字的记录,是从表头开始,挨个的比较记录a[i]与key的值是等于还是不等于。
有序表查找时,利用折半查询或者插值查询,直到相等时成功返回i。
最终我们的目的都是为了找到那个i,其实也就是相对的下标。再通过顺序存储的存储位置计算方法,loc(ai)=loc(a1)+(i-1)×c。
我们能否直接通过关键字key来得到要查找的记录存储位置呢?
散列技术是在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使得每个关键字key对应一个存储位置f(key)。
f是散列函数。
散列表查找步骤
- 在存储时,通过散列函数计算记录的散列地址,并按照此散列地址存储该记录。
- 当查找记录时,我们通过同样的散列函数计算记录的散列地址,按此散列地址访问该记录。
所以说,散列技术既是一种存储方法,也是一种查找技术。