UML类图:
————————————————————————————————————
StopWatch
————————————————————————————————————
-startTime: int
-endTime: int
————————————————————————————————————
+StopWatch()
+start(): void
+stop(): void
+getElapsedTime(): long
————————————————————————————————————
package pack2;
import java.security.SecureRandom;
public class StopWatch {
private long startTime, endTime; //开始、结束时间
/**初始化当前时间*/
public StopWatch() {
startTime = System.currentTimeMillis();
}
/**重设当前时间*/
public void start() {
startTime = System.currentTimeMillis();
}
/**将endTime设置为当前时间*/
public void end() {
endTime = System.currentTimeMillis();
}
/**返回以毫秒为单位的流逝时间*/
public long getElapsedTime() {
return endTime - startTime;
}
//-----------------------------------------------------
public static void main(String[] args) {
StopWatch stopWatch = new StopWatch();
int[] array = getArray();
// System.out.println("Before sorted: ");
// printArray(array, 10);
stopWatch.start();
sort(array);
stopWatch.end();
System.out.println("\n\n\n\nSort time: " + stopWatch.getElapsedTime());
// System.out.println("After sorted: ");
// printArray(array, 10);
}
/**返回随机数组*/
public static int[] getArray() {
int[] array = new int[100_000];
for (int i = 0; i < array.length; i++)
array[i] = 1 + new SecureRandom().nextInt(array.length);
return array;
}
/**选择排序*/
public static void sort(int[] array) {
for (int i = 0; i < array.length - 1; i++) {
int min = array[i];
int index = i;
for (int j = i + 1; j < array.length; j++)
if(array[j] < min) {
min = array[j];
index = j;
}
if(index != i) {
int temp = array[index];
array[index] = array[i];
array[i] = temp;
}
}
}
/**按给定列数打印数组*/
public static void printArray(int[] array, int column) {
for (int i = 0; i < array.length; i++) {
System.out.printf("%8d", array[i]);
if((i + 1) % column == 0) System.out.println();
}
}
}