由于查找运算的使用频率很高,几乎在任何一个计算机系统软件和应用软件中都会涉及到,所以当问题所涉及的数据量相当大时,查找方法的效率就显得格外重要。在一些实时查询系统中尤其如此。
1、查找条件、查找操作和查找结果
-
-
- 一个数据结构由相同数据类型的多个数据元素所组成,一个数据元素通常由多个数据项组成。
- 关键字是数据元素中用于识别该元素的一个或多个数据项。
- 能够唯一识别数据元素的关键字称为主关键字。
- 查找操作:给定一个值key,在一个数据结构中找出关键字等于key的元素。
-
- 若找到,则查找成功,返回该结点的信息或该结点在表中的位置;否则查找失败,返回相关信息。
-
3、查找算法效率
-
-
-
- 衡量查找算法效率的主要标准是平均查找长度(Average Search length,ASL),即查找过程中关键字的平均比较次数。
其中:
①n是结点的个数;
②Pi是查找第i个结点的概率。若不特别声明,认为每个结点的查找概率相等,即
p1=p2…=pn=1/n③ci是查找第i个结点所需进行的比较次数。
查找成功和查找不成功的平均查找长度通常不同,分别记为ASL成功和ASL不成功。
-
-
4、顺序查找算法及效率
顺序查找的基本思想
n从线性表的一端开始,依次将每个元素的关键字与给定值进行比较。
l若有相等者,则查找成功;
l否则继续比较,直到比较完所有元素,仍未有相等者,则查找不成功,给出结果信息。
n顺序查找又称为线性查找,主要应用于数据量较小的线性表。
n顺序查找方法既适用于顺序表,也适用于链表。
(1)顺序表的顺序查找
(2)单链表的顺序查找
(3)顺序查找算法分析
①顺序查找的优点
算法简单,且对线性表的存储结构无
算法简单,且对线性表的存储结构无