import java.util.Random;
public class QuickSorting {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[]=new int[20];
for(int i=0;i<a.length;i++){
a[i]=new Random().nextInt(100);
}
// int a[]={72,12,96,59,67,59,33,55,23,44};
// int a[]={44,12,23,59,67,59,33,55};
printArray("Before Quick Sorting:",a);
quickSorting(a,0,a.length-1);
printArray("After Quick Sorting:",a);
}
private static void quickSorting(int[] a, int low, int high) {
int temp=partition(a,low,high);
if((temp-1)-low>=1){
quickSorting(a,low,temp-1);
}
if((high-(temp+1))>=1){
quickSorting(a,temp+1,high);
}
}
public static int partition(int[] a,int low,int high){
int pivot=a[low];
while(low<high){
while(low<high&&a[high]>=pivot) high--;
swap(a,low,high);
while(low<high&&a[low]<=pivot) low++;
swap(a,low,high);
}
return low;
}
private static void swap(int[] a,int low,int high) {
int temp=a[low];
a[low]=a[high];
a[high]=temp;
}
private static void printArray(String string, int[] a) {
System.out.println();
System.out.print(string);
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
}