public static void quickSort(int[] data, int low, int high) {
int i, j, temp, t;
if (low > high) {
return;
}
i = low;
j = high;
temp = data[low];
while (i < j) {
//先看左边 依次往左递减
while (temp <= data[j] && i < j) {
j--;
}
//在看右边,依次往右递增
while (temp >= data[i] && i < j) {
i++;
}
if (i < j) {
t = data[j];
data[j] = data[i];
data[i] = t;
}
}
data[low] = data[i];
data[i] = temp;
//递归调用左半数据
quickSort(data, low, j - 1);
//递归调用右半数组
quickSort(data, j + 1, high);
}
public static void main(String[] args) {
int[] data = {3, 44, 54, 5, 23, 1, 33, 53, 5, 65, 29, 46, 78};
System.out.println("排序前的:" + Arrays.toString(data));
quickSort(data, 0, data.length - 1);
System.out.println("排序后的:" + Arrays.toString(data));
}