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();
	}
}

输出截图:

 

注:骗骗阅读量,嘿嘿嘿~~~~~~~~~~~~~

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