查找和生活息息相关。为了得到一个或一批数据,必须扫描某一范围的数据,这个扫描过程就是查找。
利用计算机去查询特定的信息,就需要在计算机内存中包含该特定信息的表,而这张表的结构类型的不同,会影响查找的效率。
因此,可以让不同的数据类型采用与之适应的查找方法,以获得较高的查找效率。
关键字:用各种数据结构(如数组、链表等)组成一个表,表中每个记录都有一个关键字域(简称关键字)。关键字是数据元素(或记录)中某个数据项的值,用它可以标识一个数据元素(或记录)。唯一标识一个数据元素(或记录)的关键字,称为主关键字,不能唯一确定一个数据元素(或记录)的关键字,成为次关键字。
对查找表的操作包括以下几点
(1)查找某个特定元素是否包含在查找表中
(2)检索某个特定元素的各种属性。
(3)插入某个元素到查找表。
(4)在查找表中删除某个元素。
静态查找表和动态查找表
- 若查找的数据在查找之前,就以某种特定方式存储,如由小到大排序,其数据不会再增加、删除和修改,称此类查找表为静态查找表。
- 若在对查找表进行查找的过程中,同时需要随时插入、删除和修改当前查找表中的数据元素,则称此类查找表为动态查找表。
查找分为内部查找和外部查找
- 如果所有要查找的数据都存放在主存储器中,这样的查找称为内部查找,简称内查找。
- 如果要查找的数据量很大,无法同时全部存放在主存储器中,必须利用硬盘等辅助存储器,在查找过程中要访问外存的查找,称为外部查找。
为确定数据元素(记录)在表中的位置,查找过程中所进行的给定值和关键字比较的次数的期望值称为查找算法的平均查找长度。平均查找长度可以衡量一种查找算法的优劣。