public class QuickSort {
public static void quickSort(int arr[] , int n) {
quickSort(arr , 0 , n -1 ) ;
}
private static void quickSort(int arr[] , int l , int r) {
if(l >= r)
return ;
int p = partition(arr , l , r) ;
quickSort(arr , l , p -1 );
quickSort(arr ,p + 1 , r) ;
}
private static int partition(int arr[] , int l , int r) {
int v = arr[l] ;
int j = l ;
for(int i = l + 1 ; i<= r ;i ++) {
if(arr[i] < v) {
int temp = arr[j + 1] ;
arr[j + 1] = arr[i] ;
arr[i] = temp ;
j ++ ;
}
}
int temp = arr[l] ;
arr[l] = arr[j] ;
arr[j] = temp ;
return j ;
}
public static int[] generateRandomArray() {
int array[] = new int[1000] ;
for(int i = 0; i < array.length ;i ++) {
array[i] = (int)(Math.random() * 1000) ;
}
return array ;
}
public static int count = 0 ;
public static void main(String[] args) {
// int array[] = {1 ,2 ,5,3,4 ,9,7,8 , 13 ,17 ,54,28,13,14,12,11,9,5,6,32} ;
// quickSort(array , array.length ) ;
// for(int i= 0; i < array.length ; i ++) {
// System.out.print(array[i] + " ");
// }
int sortArray[] = generateRandomArray();
quickSort(sortArray , sortArray.length ) ;
for(Integer i : sortArray) {
count ++ ;
System.out.print(i + " ");
if(count % 10 == 0) {
System.out.println();
}
}
}
}