public class QuickSort {
public static void quickSort(int array[], int start, int end) {
//本质是递归,首先记住递归最重要的就是结束条件。
if (start >= end) {
return;
}
int left = start;
int right = end;
int temp = array[left];
while (left < right) {
while (left < right && array[right] >= temp) {
right--;
}
while (left < right && array[left] <= temp) {
left++;
}
if (left < right) {
swap(array, left, right);
}
}
swap(array, start, left);
quickSort(array, 0, left - 1);
quickSort(array, left + 1, end);
}
public static void swap(int array[], int i, int n) {
int temp = array[i];
array[i] = array[n];
array[n] = temp;
}
public static void main(String[] args) {
int array[] = { 4, 6, 878, 3, 13, 2, 47, 9 };
quickSort(array, 0, array.length - 1);
System.out.println(Arrays.toString(array));
}
}
网友评论