1、算法實作:
import java.util.Arrays;
public class MySort {
// 數組長度
private final static int length = 50000;
private static int[] array = new int[length];
public static void main(String[] args) {
// 初始化一個随機數組
getArray();
// 記錄排序所用時間
TimeCost timeCost = new TimeCost();
// 插入排序
sort_insert();
long cost = timeCost.elapsedTime();
System.out.println(cost);
System.out.println(Arrays.toString(array));
}
/**
* 插入排序
*/
private static void sort_insert(){
for (int i = 1; i < length; i++) {
for (int j = i-1; j >= 0; j--) {
if (array[j+1] < array[j]){
int temp = array[j+1];
array[j+1] = array[j];
array[j] = temp;
}
}
}
}
/**
* 初始化一個随機數組
*/
private static void getArray(){
int i = 0;
while (i < length){
array[i] = (int) (length * Math.random());
i++;
}
}
/**
* 記錄時間開銷
*/
static class TimeCost{
private final long start;
TimeCost(){
start = System.currentTimeMillis();
}
private long elapsedTime(){
long now = System.currentTimeMillis();
return (now - start) ;
}
}
}