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 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.