数组快速排序,递归实现
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
public class testDemo {
private static int[] arrs;
public static void main(String[] args) {
int[] arr = randomInt(100000);
showTime("开始时间:");
sort(arr, 0, arr.length - 1);
showTime("结束时间:");
System.err.println(arrs.length + "排序后:" + Arrays.toString(arrs) + arrs.length);
}
public static int[] randomInt(int n) {
int[] ints = new int[n];
for (int i = 0; i < n; i++) {
ints[i] = (int) (Math.random()*(n-1)+1);
}
return ints;
}
public static void showTime(String str) {
String format = new SimpleDateFormat("yyyy-MM-dd HH:MM:ss").format(new Date());
System.err.println(str + format);
}
public static void sort(int[] array, int left, int right) {
if(left > right) {
return ;
}
int base = array[left];
int i = left, j = right;
while(i != j) {
while(array[j] >= base && i < j) {
j--;
}
while(array[i] <= base && i < j) {
i++;
}
if(i < j) {
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
}
}
array[left] = array[i];
array[i] = base;
sort(array, left, i - 1);
sort(array, i + 1, right);
arrs = array;
}
}