題目:
設計一個名爲 Stopwatch 的類.該類包含:
• 具有訪問器方法的私有數據域 startTime 和 endTime。
• 一個無參構造方法,使用當前時間來初始化 startTime。
• 一個名爲 start()的方法,將 startTime 重設爲當前時間。
• 一個名爲 stop()的方法,將 endTime 設置爲當前時間。
• — 個名爲 getElapsedTimeO 的方法,以毫秒爲單位返回秒錶記錄的流逝時間。
畫出該類的UML圖並實現這個類。編寫一個測試程序.用於測童使用選擇排序對 100 000 個數字進行排序的執行時間。
代碼塊:
package com.HelloWorld;
import java.util.*;
import java.util.Random;
import java.util.Scanner; //讀入包
import javax.print.StreamPrintService;
import java.math.BigInteger; //math中的大數包
import java.math.*;
import java.lang.String;
class StopWatch{
private Date startTime;
private Date endTime;
public StopWatch() {
startTime = new Date();
}
public void start(){
startTime = new Date();
}
public void stop(){
endTime = new Date();
}
public long getElapsedTime(){
return endTime.getTime() - startTime.getTime();
}
}
public class Main {
public static void selectsort(int[] a) {
int n = a.length;
for(int i=0; i<n-1; ++i) {
int k=i;
for(int j=i+1; j<n; ++j)
if(a[j] < a[k])
k=j;
if(i!=k) {
int tem = a[k];
a[k] = a[i];
a[i] = tem;
}
}
}
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);// 讀入
int num = 100000;
int[] arr = new int[num];
Random ran = new Random();
for(int i=0; i<num; ++i)
arr[i] = ran.nextInt(num);
StopWatch watch = new StopWatch();
selectsort(arr);
watch.stop();
System.out.println(watch.getElapsedTime() + "ms");
cin.close();
}
}
輸出截圖:
注:騙騙閱讀量,嘿嘿嘿~~~~~~~~~~~~~