查找的基本概念
列表
由同一类型的数据(或记录)元素构成的集合,可由任意数据结构实现。
关键字
数据元素的某个数据项的值,它可以表示列表中的一个或一组数据元素。如果一个关键字可以唯一标示列表中的一个元素,则称其为主关键字,否则为次关键字。当数据元素仅有一个数据项时,数据元素的值就是关键字。
查找
根据给定的关键字的值,在列表中确定一个其关键字与给定值相同的数据元素,并返回该元素在列表中的位置。若找不到此时应返回空地址和失败信息。
对于表的查找有两种形式,静态查找和动态查找。静态查找是指仅在列表中进行查找。动态查找是指在查找的同时,插入找不到的元素或删除已查到的元素。
平均查找长度
为确定数据元素在列表中的位置,须和给定值进行比较的关键字个数的期望值,称为查找算法在查找成功时的平均查找长度。
例如:对长度为n的列表,查找成功时的平局查找长度为
$ ASL = P_1C_1+P_2C_2+...+P_nC_n = \quad \sum_{i=1}^n{P_iC_i} $其中 $P_i$ 是查找到$i$元素的概率,$C_i$是查找到$i$元素时比较的次数。
查找的基本分类
比较查找法
: 基于线性表的查找法
: 基于树查找法
计算式查找法
: 哈希查找法