查找的概念:
数据的组织和查找是大多数应用程序的核心,而查找是所有数据处理中最基本、最常用的操作。
查找表(Search Table): 相同类型的数据元素(对象)组成的集合,每个元素通常由若干数据项构成。
关键字(Key,码): 数据元素中某个(或几个)数据项的值,它可以标识一个数据元素。若关键字能唯一标识一个数据元素,则关键字称为主关键字;将能标识若干个数据元素的关键字称为次关键字。
查找/检索(Searching): 根据给定的K值,在查找表中确定一个关键字等于给定值的记录或数据元素。
◆ 查找表中存在满足条件的记录:查找成功;结果为所查到的记录信息或记录在查找表中的位置。
◆ 查找表中不存在满足条件的记录:查找失败,查找结果可给出一个空记录或空指针。
查找的两种基本形式:
静态查找(Static Search): 在查找时只对数据元素进行查询或检索,查找表称为静态查找表。
动态查找(Dynamic Search): 在实施查找的同时,插入查找表中不存在的记录,或从查找表中删除已存在的某个记录,查找表称为动态查找表。
采用何种存储结构?
(1)顺序表
(2)链表
(3)其他
查找方法的性能指标:
查找运算时间主要花费在关键字比较上,通常把查找过程中执行的关键字平均比较个数(也称为平均查找长度)作为衡量一个查找算法效率优劣的标准。
n是查找表中记录的个数。pi是查找第i个记录的概率,一般地,认为每个记录的查找概率相等,即pi=1/n(1≤i≤n),ci是找到第i个记录所需进行的比较次数。
平均查找长度分为:成功情况下的平均查找长度与不成功情况(失败)下的平均查找长度。
线性表查找的主要方法有:
(1)顺序查找 (2) 二分查找 (3)分块查找
若当前扫描到的关键字与k相等,则查找成功;若扫描结束后,仍未找到关键字等于k的记录,则查找失败。