【发布时间】:2017-08-17 19:59:11
【问题描述】:
所以我对 Java 非常陌生,我的任务是创建一个大小为 10 个索引的数组,复制它,并对副本进行排序。这些部分我已经正常运行。他们希望我做的是提示用户输入他们希望搜索的值,如果找到,则返回索引以及在哪个数组中找到它。最后的搜索部分真的让我很困惑。我知道我的代码很草率,但我还不是很擅长。这本书当然有一个例子,但它使用了一个驱动程序类,我不完全确定在这种情况下是否需要这样做。感谢您的任何回复,如果我发布不正确,我深表歉意。
http://imgur.com/a/T8t3Q - 这是所需最终输出的示例。
public class MJUnit1Ch9 {
public static void main(String[] args) {
Scanner stdIn = new Scanner(System.in);
double[] numList; //list of random numbers
double[] numListSorted; //sorted copy of array
int numSearch; //array search
int numSearchIndex; //position in array
numList = new double[10]; //creation of size 10 array
for (int i = 0; i < 10; i++) { //create random numbers between 1 and 20
numList[i] = (int) (Math.random() * 20 + 1);
}
numListSorted = Arrays.copyOf(numList, numList.length); //copy original array
Arrays.sort(numListSorted); //sort copy by API
System.out.printf("%7s%7s\n", "Unsorted Array", "Sorted Array");
for (int i = 0; i < numList.length; i++) {
System.out.printf("%7.2f%7.2f\n", numList[i], numListSorted[i]);
}
//*************************************************************************
//*************************************************************************
System.out.print("Please enter number to search for:");
}
}
【问题讨论】:
-
您是否在阵列上尝试过二分搜索?检查这个 - 它在第一个答案中有 BS 实现:stackoverflow.com/questions/19492402/…
-
“驱动程序”程序通常仅用作调用另一个类中定义的代码的主要方法。考虑是一个演示。你不需要它。您只需编写逻辑(一个简单的循环)即可在已有的 main 方法中搜索数组。
-
我没有。据我所知,二进制搜索只能用于排序数组。我这样想有错吗?