快速排序
public class QuickSort {
public static void quickSort(int[] arr, int low, int high) {
if (low >= high) {
return;
}
int position = split(arr, low, high);
quickSort(arr, low, position - 1);
quickSort(arr, position + 1, high);
}
private static int split(int[] arr, int low, int high) {
int key = arr[low];
int i = low;
for (int j = i + 1; j <= high; j++) {
if (arr[j] <= key) {
i++;
if (i != j) {
swap(arr, i, j);
}
}
}
swap(arr, low, i);
return i;
}
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}