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
广告