算法复习-查找(1)-顺序查找法
2018-06-21 本文已影响0人
桔子满地
顺序查找法:
顺序查找法是一种最简单的查找方法。
基本思路:从表的一端开始,顺序扫描线性表,依次将扫描到的关键字和给定值k比较,若当前扫描的关键字与k相等,则查找成功;若扫描结束后,仍未发现关键字等于k的记录,则查找失败。
顺序查找法对于顺序表和链表都是适用的。
代码:
int Search(int array[], int n, int k) {
int i;
for (i = 0; i < n; ++i) {
if (array[i] == k)
return i+1;
}
return 0;
}
ASL分析:
由于k取值的不同,体现了两种查找长度:一种是查找成功的查找长度,另一种是查找失败的查找长度。
ASL也有两种:
-
查找成功情况下的ASL1:
ASL1 = 1/n(1+2+3+…+n) = (n+1)/2 -
查找不成功情况下的ASL2:
ASL2 = n
由ASL1和ASL2的表达式均可求出时间复杂度为O(n).