You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java线性搜索查找数组元素时如何循环10次分别统计每次执行耗时

实现方案

修改逻辑

你只需要将原代码中单次查找+计时的代码块外层套入10次循环,即可实现每次测试单独统计耗时的需求,原有逻辑不用修改。如果要求每次测试使用独立的全新随机数组,可将随机数组生成的逻辑也移入循环内部。

修改后完整代码

import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

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);

        // 打印数组
        StringBuffer sb = new StringBuffer();
        for (Object s : list) {
            sb.append(s);
            sb.append(" ");
        }
        String str = sb.toString();
        System.out.println("生成的数组:\n" + str);
        
        // 循环执行10次测试
        for (int round = 1; round <= 10; round++) {
            System.out.println("\n===== 第" + round + "次测试 =====");
            // 开始计时
            long startTime = System.nanoTime();

            linearSearch(list, x);

            // 结束计时
            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) {
            // 获取指定范围内的随机数
            int randomNumber = rand.nextInt((max - min) + 1) + min;
            // 去重
            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));
            }
        }
    }
}

补充说明

如果需要每次测试都使用不同的随机数组,只需要将ArrayList list = GenerateRandomIntegers(n, 0, n);以及数组打印的逻辑移入循环内部即可。

内容的提问来源于stack exchange,提问作者RaVeN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 12:39:03