数据查找是根据查询要求从一个计算机文件或数据库中提取所需数据的技术,是数据处理的基本技术之一。该技术包含内查找(数据全在内存)和外查找(数据在外存储器)两种核心场景,数据按数据项-记录-文件三级结构组织,通过关键字定位目标记录。
此法要求被查找的文件中记录是按
关键字值大小顺序排列的。将文件一分为二,把给定关键字值与中点的记录比较,若匹配,则查找成功;否则判断所要查找的记录可能在上半部分,还是在下半部分。然后,对确定的部分继续上述过程,直至找到要求的记录,查找成功;或最后只剩下一个记录仍不能匹配,查找失败。若文件中记录数为N,则查到一个记录的最多比较次数为log2N。
对于随机文件,如果是计算寻址结构的文件可以采用直接查找的方法,即利用关键字值和记录位置之间的对应关系直接找到该记录。如果是索引结构的文件,先用上述方法查找索引,在索引中找到相应关键字值后,再由索引表上对应的地址找到相应的记录。不同查找方法的效率很不相同,这主要取决于文件结构和查询问题的特点,查询算法本身也是重要影响因素。