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

Java选择排序多轮运行耗时平均值计算问题求助

要实现多次运行耗时的平均值计算,只需要新增一个累计变量存储总耗时,循环结束后做除法即可,修改逻辑如下:

具体修改步骤

  • 在外层的10000次执行循环外,初始化一个总耗时变量,初始值为0
  • 每次循环得到单次耗时elapsedTime后,将其累加进总耗时变量
  • 所有循环执行结束后,用总耗时除以执行次数,得到平均耗时

注意:如果要准确统计排序算法的耗时,建议删除printArray(n)调用,控制台IO打印的耗时远高于排序本身,会导致测试结果严重失真。

修改后完整代码

package ClassOne;

import java.util.Random;

public class SelectionProgram {

    public static void main(String[] args) {
        int executeTimes = 10000;
        // 总耗时变量,用long存储精度更高
        long totalElapsedTime = 0;
        
        for (int j = 0; j < executeTimes; j++) {
            long startTime = System.nanoTime();
            Random rd = new Random();
            int [] n = new int [100];
            for (int i = 0; i < n.length; i++) {
                n[i] = rd.nextInt();
            }
            
            SelectionSort(n);
            // 测试排序性能时建议注释掉下面这行打印
            printArray(n);
            long endTime = System.nanoTime();
            
            long elapsedTime = endTime - startTime;
            // 累加单次耗时到总耗时
            totalElapsedTime += elapsedTime;
            System.out.println("第" + (j+1) + "次执行耗时:" + elapsedTime + "纳秒");
        }
        // 计算平均耗时
        double avgElapsedTime = (double) totalElapsedTime / executeTimes;
        System.out.println("======================");
        System.out.println("总执行次数:" + executeTimes);
        System.out.println("总耗时:" + totalElapsedTime + "纳秒");
        System.out.println("平均单次耗时:" + avgElapsedTime + "纳秒");
    }
    
    public static int[] SelectionSort(int[] A) {
        int k;
        int temp;
        for (int i=0; i<A.length-1; i++) {
            k=i;
            for (int j=i+1; j<=A.length-1; j++) {
                if (A[j]<A[k]) {
                    k=j;
                }
            }
            temp = A[i];
            A[i] = A[k];
            A[k] = temp;
        }
        return A;
    }

    public static void printArray(int[] A) {
        for(int i = 0; i<A.length; i++) {
            System.out.println(A[i]);
        }
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 03:30:01