【发布时间】:2021-11-02 17:21:48
【问题描述】:
所以我在作业中遇到了这个问题,除了最后一部分,我几乎都做了,代码运行良好。我得到的问题在下面提到。
编写一个程序,生成 0 到 100 之间任意数量的随机整数 范围。您的程序应该获取大小作为参数并返回 数字作为数组。
现在实现线性搜索。将 100 个项目的随机数组传递为 列表和“50”作为要查找的项目。计算找到 50 的时间 数组并记录消耗的时间。
进行此测试 10 次
我想知道如何将数组运行 10 次并计算每个循环分别找到 50 次的时间。
我在下面提到了我的代码。我的代码工作得很好,需要知道如何做最后一部分。
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Array size:\t");
int n = sc.nextInt();
System.out.println("Element to be found: ");
int x = sc.nextInt();
ArrayList list = GenerateRandomIntegers(n, 0, n);
//printing the array
StringBuffer sb = new StringBuffer();
for (Object s : list) {
sb.append(s);
sb.append(" ");
}
String str = sb.toString();
System.out.println(str);
//start computing time
long startTime = System.nanoTime();
linearSearch(list, x);
//end computing time
long endTime = System.nanoTime();
long timeElapsed = endTime - startTime;
System.out.println("Execution time in nanoseconds: " + timeElapsed);
System.out.println("Execution time in milliseconds: " + timeElapsed / 1000000);
}
public static ArrayList GenerateRandomIntegers(int size, int min, int max) {
ArrayList numbers = new ArrayList();
Random rand = new Random();
while (numbers.size() < size) {
//getting random numbers within range
int randomNumber = rand.nextInt((max - min) + 1) + min;
//check for duplicates
if (!numbers.contains(randomNumber)) {
numbers.add(randomNumber);
}
}
return numbers;
}
public static void linearSearch(ArrayList arr, int target) {
for(int i=0;i<arr.size();i++) {
if(arr.get(i).equals(target)) {
System.out.println("Item found at = "+(i+1));
}
}
}
}
我希望你能解决我的问题 (T^T)。只想知道如何一次运行 10 次(如循环)并为每个循环分别计算时间。
【问题讨论】:
标签: java algorithm sorting linear-search