美文网首页
算法复习-查找(1)-顺序查找法

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

作者: 桔子满地 | 来源:发表于2018-06-21 17:16 被阅读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也有两种:

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

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

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

    相关文章

      网友评论

          本文标题:算法复习-查找(1)-顺序查找法

          本文链接:https://www.haomeiwen.com/subject/qhhcyftx.html