0

我所知道的是线性搜索和顺序搜索是相同的,如果我的知识是正确的,那么请指导我下面的算法是否适用于线性搜索,因为它是一个顺序搜索算法。

  1. 初始化searcharray、searchno、length。
  2. 初始化 pos=0。
  3. 重复步骤 4 直到 pos<=length。
  4. 如果 searcharray[pos]=searchno
    返回 pos
    否则将 pos
    加 1。

其次,我需要有关如何在数组的第一个元素处移动找到的值的帮助

4

1 回答 1

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。

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

于 2013-09-05T15:27:43.757 回答