public static void quick_sort(int a[], int left, int right){
if(left >= right) return;
int tmp = a[left];
int i = left;
int j = right;
while(i < j){
while(i < j && a[j] >= tmp) j--;
while(i < j && a[i] <= tmp) i++;
{int t = a[i]; a[i] = a[j]; a[j] = t;}
}
a[left] = a[i];
a[i] = tmp;
quick_sort(a,left,i-1);
quick_sort(a,i+1,right);
}
private static void quick(int[] arr, int left, int right) {
if(left >= right){
return;
}
int tmp = arr[left];
int i = left , j = right;
int m = i - 1;
while(i <= j){
if(arr[i] <= tmp){
swap(arr, m+1, i);
i++;
m++;
}else{
i++;
}
}
arr[left] = arr[m];
arr[m] = tmp;
quick(arr, left, m - 1);
quick(arr, m + 1, right);
}
public static void swap(int[] arr, int i, int j){
if(i == j){
return;
}
arr[i] = arr[i] + arr[j];
arr[j] = arr[i] - arr[j];
arr[i] = arr[i] - arr[j];
}