0

public static boolean linearSearch(int[] array, int target):此方法应将 int 数组和 int 数组作为输入。如果元素 target 存在于 array 中,它应该返回 true。它应该通过依次开始检查数组的每个元素来做到这一点

从数组的开头到结尾。如果元素不存在,该方法应返回 false。

public class ArrayUtilities{
  public static void main(String[] args){
    int[] array1= {1,2,3,4,5};
    int target1 = 2;
    linearSearch(array1,target1);
  }

    public static boolean linearSearch(int[] array, int target){
      int x=0;
      for(int i = 0; i< array.length; i++){
        if(array[i] == target){
          return true;
    }
        else{
          x++;
        }
      }
      if(x == 0){
        return false;
      }
      return linearSearch;//**error here!**
}
}

这是我为这个问题写的代码。但是我在返回线性搜索时出错。我不明白为什么。先感谢您!

错误说:符号:变量线性搜索位置:类ArrayUtilities

4

5 回答 5

2

如果您找到匹配项,您会立即返回 true,这很好。

但我不明白x变量的目的。我会完全删除它(并else从 中删除if)。

如果你完成了for循环,那么你还没有找到它,你可以false在那里返回。这条线return linearSearch没有任何意义。for循环结束后只有一行: return false;.

于 2013-10-29T20:43:31.470 回答
1

为什么最后有条件的“else”?如果您的循环结束而没有找到任何匹配项,则返回 false,只要找到匹配项就返回 true。我的意思是,一旦找到匹配项,就返回 true,如果在没有找到任何东西的情况下结束迭代,则返回 false。

    public static boolean linearSearch(int[] array, int target){
      for(int i = 0; i< array.length; i++){
        if(array[i] == target){
          return true;
    }
   }
    return false;
  }
于 2013-10-29T20:45:31.753 回答
0

return 语句后面需要有一个布尔值或变量。线性搜索(没有任何参数)都不是。

于 2013-10-29T20:43:12.843 回答
0

决定你想要返回什么,我看到你返回的是真的,即布尔值,你也试图返回线性搜索,我不知道那是什么。它必须是真或假。

于 2013-10-29T20:43:22.790 回答
0
public boolean check;
public static boolean linearSearch(int[] array, int target){
    check = false;
    for(int i = 0; i < array.length; i++){
        if(array[i] == target){
            check = true;
        }
    }
    return check;
}
于 2013-10-29T20:46:01.707 回答