算法复习-查找(1)-顺序查找法

顺序查找法:

顺序查找法是一种最简单的查找方法。
基本思路:从表的一端开始,顺序扫描线性表,依次将扫描到的关键字和给定值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也有两种:

  1. 查找成功情况下的ASL1
    ASL1 = 1/n(1+2+3+…+n) = (n+1)/2

  2. 查找不成功情况下的ASL2
    ASL2 = n

由ASL1和ASL2的表达式均可求出时间复杂度为O(n).

你可能感兴趣的:(算法复习-查找(1)-顺序查找法)