快速排序:
public static void quick(int[] number) {
sort(number, 0, number.length-1);
}
private static void sort(int[] number, int left, int right) {
if(left < right) {
int i = left;
int j = right + 1;
while(true) {
// 向右找
while(i < right && number[++i] < number[left]) ;
// 向左找
while(j > left && number[--j] > number[left]) ;
if(i < j){
swap(number, i, j);
}else{
break;
}
}
swap(number, left, j);
sort(number, left, j-1); // 对左边递归
sort(number, j+1, right); // 对右边递归
}
}
private static void swap(int[] number, int i, int j) {
int t = number[i];
number[i] = number[j];
number[j] = t;
}