Java語言程序設計 基礎篇 原書第10版(樑勇著)P306頁課後習題9.6

題目:

設計一個名爲 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();
	}
}

輸出截圖:

 

注:騙騙閱讀量,嘿嘿嘿~~~~~~~~~~~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章