在我的线性搜索算法中感到困惑

时间:2013-09-05 08:34:42

标签: algorithm turbo-c++

我所知道的是线性搜索和顺序搜索是一样的,如果我的知识是正确的,那么请指导下面的线性搜索算法,或者不是因为它是顺序搜索算法。

  1. 初始化searcharray,searchno,length。
  2. 初始化pos = 0。
  3. 重复步骤4直到pos< = length。
  4. 如果searcharray [pos] = searchno
       返回位置 否则
        增量位置为1.
  5. 其次,我需要帮助我如何在数组的第一个元素

    中移动找到的值

1 个答案:

答案 0 :(得分:0)

从数组中线性搜索数字,可能是成功还是失败。

您的算法应定义成功或失败的退货。例如成功的位置索引和失败的负数。

尝试这样思考:移动直至找到位置。

您的号码定义为目标。给定长度和数组A。

int linearSearch(int target, int* A, int length) {
  int pos = length - 1;
  while ( pos >= 0 and target != A[pos] ) --pos;
  return pos;
}

在这里,如果您的目标号码不在数组中,您将返回-1。

这将简单而优雅。但是如果你有重复的目标号码,你可能会想到如何处理它们。让你们中的一个找到或返回所有位置。