在本章前面的顺序表查找时,我们曾经说过,如果你要查找某个关键字的记录,就是从表头开始,挨个的比较记录a[i]与key的值是“=”还是“≠”,直到有相等才算是查找成功,返回i。到了有序表查找时,我们可以利用a[i]与key的“<”或“>”来折半查找,直到相等时查找成功返回i。最终我们的目的都是为了找到那个i,其实也就是相对的下标,再通过顺序存储的存储位置计算方法,LOC(a i )=LOC(a 1 )+(i-1)×c,也就是通过第一个元素内存存储位置加上i-1个单元位置,得到最后的内存地址。

    此时我们发现,为了查找到结果,之前的方法“比较”都是不可避免的,但这是否真的有必要?能否直接通过关键字key得到要查找的记录内存存储位置呢?