import java.util.*;
public class QuickSort {
public int[] quickSort(int[] A, int n) {
qsort(A,0,n-1);
return A;
}
public void qsort(int[] A,int low,int high){
int point;
if(low < high){
point = patition(A,low,high);
qsort(A,low,point-1);
qsort(A,point+1,high);
}
}
public int patition(int[] A,int low,int high){
int pointKey = A[low];
while(low < high){
while(low < high && A[high] >= pointKey){
high--;
}
swap(A,low,high);
while(low < high && A[low] <= pointKey){
low++;
}
swap(A,low,high);
}
return low;
}
public void swap(int[] A,int low,int high){
int temp = A[low];
A[low] = A[high];
A[high] = temp;
}
}