/* Title: QSort
* Description:
* @author zoulux
* @date 2015年11月11日 下午12:20:55*/
import java.util.Arrays;
public class Sort {
public static void main(String[] args) {
int[] arr = { 49, 38, 65, 97, 76, 13, 27, 12, 11, 11 };
quickSort(arr, 0, arr.length - 1);
System.out.println(Arrays.toString(arr));
}
private static void quickSort(int[] arr, int low, int hight) {
int i = low;
int j = hight;
if (i > j) {
return;
}
// 基准元素
int key = arr[low];
while (true) {
/*
* j往前走
*/
while (j > i) {
if (arr[j] < key) {
// 交换
swap(arr, i, j);
break;
} else {
j--;
}
}
/*
* i往后走
*/
while (i < j) {
if (arr[i] > key) {
// 交换
swap(arr, i, j);
break;
} else {
i++;
}
}
if (i == j) {
break;
}
}
quickSort(arr, low, i - 1);
quickSort(arr, i + 1, hight);
}
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}