Java程序用于计算数组排序时间


在本文中,我们将学习如何测量在Java中排序数组所需的时间。我们将研究两种计算排序时间的方法:使用Date类System.nanoTime()方法

首先,我们将使用Date类来跟踪排序操作之前和之后的时间,从而计算以毫秒为单位的持续时间。然后,我们将利用System.nanoTime()以更高的精度捕获时间,以纳秒为单位进行测量并将结果转换为毫秒。

不同的方法

以下是使用Java测量排序数组所需时间的不同方法:

使用Date类

以下是使用Date类计算数组排序时间的步骤:

  • 首先,我们将导入用于排序的Arrays类和用于跟踪时间的Date类,它们都来自java.util包
  • 创建一个整数数组并用一系列数字填充它。
  • 在排序开始之前,我们将捕获当前时间。
  • 使用Arrays.sort()方法来排序数组。
  • 记录结束时间并在排序完成后捕获当前时间。
  • 最后,我们将计算结束时间和开始时间之间的差值,并以毫秒显示排序时间。

示例

以下是使用Date类计算数组排序时间的Java程序:

import java.util.Arrays;
import java.util.Date;
public class Demo {
   public static void main(String[] args) {
      int[] arr = new int[1000];
      for (int i = 0; i < arr.length; i++) {
         arr[i] = (int) (i + 20);
      }
      Date past = new Date();
      Arrays.sort(arr);
      Date future = new Date();
      System.out.println("Time (milliseconds) = " + (future.getTime() - past.getTime()));
   }
}

输出

Time (milliseconds) = 2

使用System.nanoTime()

以下是使用System.nanoTime()计算数组排序时间的Java程序:

  • 首先,我们将从java.util包导入Arrays类
  • 我们初始化一个大小为1000的整数数组,并用从20开始的值填充它,并且我们使用System.nanoTime()捕获以纳秒为单位的当前时间,而不是使用Date。
  • 我们调用Arrays.sort()来排序数组。
  • 我们再次使用System.nanoTime()来捕获排序后的时间。
  • 排序操作的持续时间是通过从结束时间减去开始时间来找到的。
  • 最后,我们以纳秒和毫秒(通过将持续时间除以1,000,000)打印排序时间。

示例

以下是使用System.nanoTime()计算数组排序时间的Java程序:

import java.util.Arrays;
public class Demo {
    public static void main(String[] args) {
        int[] arr = new int[1000];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = (int) (i + 20);
        }
        long startTime = System.nanoTime();
        Arrays.sort(arr); // Sort the array
        long endTime = System.nanoTime(); 
        long duration = endTime - startTime; 
        System.out.println("Time (nanoseconds) = " + duration);
        System.out.println("Time (milliseconds) = " + (duration / 1_000_000));
    }
}

输出

Time (nanoseconds) = 187525
Time (milliseconds) = 0

更新于:2024年10月25日

611 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告