题目:
设计一个名为 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();
}
}
输出截图:
注:骗骗阅读量,嘿嘿嘿~~~~~~~~~~~~~