package org.yzr.sort;
import java.util.Arrays;
public class QuickSort {
public static void main(String[] args) {
int arr[] = { 3, 4, 7, 1, 8, 0, 5, 2, 9, 6 };
System.out.println(Arrays.toString(arr));
quickSort(arr, 0, arr.length - 1);
System.out.println(Arrays.toString(arr));
}
private static void quickSort(int[] arr, int low, int high) {
if (low < high) {
int point = partition(arr, low, high);
quickSort(arr, low, point - 1);
quickSort(arr, point + 1, high);
}
}
private static int partition(int[] arr, int low, int high) {
int point = arr[low];
while (low < high) {
while (low < high && arr[high] >= point) {
high--;
}
arr[low] = arr[high];
while (low < high && arr[low] <= point) {
low++;
}
arr[high] = arr[low];
}
arr[low] = point;
return low;
}
}