【问题标题】:java implementation of the linear search on a sorted array对有序数组进行线性搜索的java实现
【发布时间】:2018-06-06 02:06:24
【问题描述】:

我正在尝试实现一个 java 代码来测试排序数组上的线性搜索,这是我的代码

public class ArrayTest {
public static void main(String [] args) {
    int []x= {12,8,6,23,6,5,17,20,9};
    int y  =linearSearch(x,23);
}
public static  int linearSearch(int []ar,int value) {
    int searchedIndex=-1;
    for(int i=0;i<ar.length;i++) {
        if (ar[i]==value) {
            searchedIndex=i;
            break;
        }
    }
    return searchedIndex ;
}

}

问题是这不会产生任何输出,也没有产生错误。谁能解释一下这个原因。

【问题讨论】:

  • System.out.println ("The index is " + y);
  • 你的数组没有排序。
  • 你没有打印任何东西!使用 System.out.println() 函数来打印你的结果。
  • 您的问题源于对 Java 最基本的误解,建议您查看您的笔记/书籍/教程。你可以在这里找到教程:The Really Big Index
  • 谢谢@ScaryWombat

标签: java algorithm sorting linear-search


【解决方案1】:

为了在输出中打印一些东西,你必须使用 System.out.println() 函数。答案返回到变量 y。只需将变量打印到控制台输出。此外,数组没有排序。但是,这对它没有任何问题。

【讨论】:

    【解决方案2】:

    类似这样的:

    import java.util.Arrays;
    
    public class ArrayTest {
    
        public static void main(String[] args) {
            int[] x = {12, 8, 6, 23, 6, 5, 17, 20, 9};
    //      Arrays.sort(x);
            int y = linearSearch(x, 23);
            System.out.println("" + y);
    //      int z = Arrays.binarySearch(x, 23);
    //      System.out.println("" + z);
        }
    
        public static int linearSearch(int[] ar, int value) {
            for (int i = 0; i < ar.length; i++) {
                if (ar[i] == value) {
                    return i;
                }
            }
            return -1;
        }
    
    }
    

    注意注释掉的行是为了如果你真的想要一个排序的数组而不是一个未排序的数组

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-05
      • 2019-11-19
      • 1970-01-01
      • 2012-08-28
      • 1970-01-01
      • 2018-05-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多