查找算法(I) 顺序查找 二分查找 索引查找
查找 本文为查找算法的第一部分内容,包括了基本概念,顺序查找、二分查找和索引查找。关于散列表和B树查找的内容,待有空更新吧。 基本概念 查找(search)又称检索,在计算机上对数据表进行查找,就是根据所给条件查找出满足条件的第一条记录(元素)或全部记录。 若没有找到满足条件的记录,则返回特定值,表明查找失败;若查找到满足条件的第一条记录,则表明查找成功,通常要求返回该记录的存储位置或记录值本身,以便进行进一步处理;若需要查找到满足条件的所有记录,则可看做在多个区间内连续查找到满足条件的第一条记录的过程,即首先在整个区间内查找到满足条件的第一条记录,接着在剩余的区间内查找满足条件的第一条记录,以此类推,直到剩余区间为空为止。 作为查找对象的表的结构不同,其查找方法一般也不同。 查找过程是关键字比较的过程,比较次数的多少就是相应算法的时间复杂度,它是衡量一个查找算法优劣的重要指标。 对于一个查找算法的时间复杂度,还可以采用平均查找长度(Average Search Length, ASL),即在查找成功情况下的平均比较次数来表示。 平均查找长度的计算公式为: ASL=∑p i ci 其中n为查找表的长度,即表中所含元素的个数,p i 为查找第i个元素的概率, c i 为查找第i个元素时所需的比较次数。 若查找每个元素的概率相同