第九章、查找
9.1 查找的基本概念
查找的定义是给定一个值k,在含有n个元素的表中找出关键字等于k的元素。若找到,则查找成功,返回该元素的信息或该元素在表中的位置;否则查找失败,返回相关的指示信息。
若在查找的同时对表做修改操作(如插入和删除),则相应的查找表称为动态查找表。若在查找中不涉及表的修改操作,则相应的查找表称为静态查找表。
若整个查找过程都在内存中进行,则称之为内查找;反之,若查找过程的需要访问外存,则称之为外查找。
9.2 线性表的查找
顺序表属于静态查找表。为了算法通用,用于查找运算的顺序表采用数组表示,该数组元素的类型声明如下:
9.2.1 顺序查找
查找成功的查找次数为:1,2,...,n
查找成功的平均查找长度为:ASL成功=(1+2+3+...+n)/n=(n+1)/2。顺序查找时间复杂度为O(n)。
查找失败的每次查找次数为:n
查找失败的平均查找长度为: