package Test;
import java.util.Random;
import java.io.*;
import java.util.Date;
import java.text.SimpleDateFormat;
import java.util.Calendar;
public class Baidu {
/**
* 生成随机数组
* @param n int
* @return int[]
*/
public int[] creatarray(int n) {
Random random = new Random();
int array[] = new int[n];
for (int i = 0; i < array.length; i++) {
array[i] = random.nextInt();
}
return array;
}
/**
* 排序函数
* @param data int[]
* @param n 参数长度
* @param cNo 比较的值 是0
*/
public int[] merge(int[] data, int n, int cNo) {
int length1 = 0;
int length2 = 0;
int length0 = 0;
int array1[] = new int[n]; //正数
int array2[] = new int[n]; //负数
int array0[] = new int[n]; //零
int redata[] = new int[n]; //返回数组
for (int i = 0; i < n; i++) {
if (data[i] > 0) {
array1[length1] = data[i];
length1++;
} else if (data[i] == 0) {
array0[length0] = data[i];
length0++;
} else {
array2[length2] = data[i];
length2++;
}
}
for (int i = 0; i < length1; i++) {
redata[i] = array1[i];
}
for (int i = 0; i < length0; i++) {
redata[length1 + i] = array0[i];
}
for (int i = 0; i < length2; i++) {
redata[length1 + length0 + i] = array2[i];
}
return redata;
}
/**
* 输出函数
* @param time int[]
* @param before int[]
* @param end int[]
* @param n int
*/
public void out(long[] time, int[] before, int[] end, int n) {
for (int v = 0; v < n; v++) {
System.out.println("第" + v + "组耗时:" + time[v] + " 原来是:" + before[v] +
" 排序后为:" + end[v]);
}
}
public static void main(String args[]) {
Baidu tt = new Baidu();
int[] array = new int[20];
int[] arrayEnd = new int[20];
array = tt.creatarray(20);
int forNum = 3; //循环次数
long[] timeall = new long[forNum];
for (int i = 0; i < forNum; i++) {
Calendar cCalendar = Calendar.getInstance();
long currTimebegin = cCalendar.getTimeInMillis();
arrayEnd = tt.merge(array, 20, 0);
cCalendar = Calendar.getInstance();
long currTimeend = cCalendar.getTimeInMillis();
long time = currTimeend - currTimebegin;
timeall[i] = time;
}
tt.out(timeall, array, arrayEnd, forNum);
}
}
大体思路吧 稍微在此基础上修改一下即可