/** * * @author Varun Upadhyay (https://github.com/varunu28) * */ class QuickSort { /** * This method implements the Generic Quick Sort * * @param array The array to be sorted * @param start The first index of an array * @param end The last index of an array * Sorts the array in increasing order **/ public static > void QS(T array[], int start, int end) { if (start < end) { int PIndex = partition(array, start, end); QS(array, start, PIndex - 1); QS(array, PIndex + 1, end); } } /** * This method finds the partition index for an array * * @param array The array to be sorted * @param start The first index of an array * @param end The last index of an array * Finds the partition index of an array **/ public static > int partition(T array[], int start, int end) { T pivot = array[end]; int PIndex = start; for (int i=start;i> void swap(T[] array, int initial, int fin) { T temp = array[initial]; array[initial] = array[fin]; array[fin] = temp; } // Driver Program public static void main(String[] args) { // For integer input int[] arr = {3,4,1,32,0,2,44,111,5}; Integer[] array = new Integer[arr.length]; for (int i=0;i 0 1 2 3 4 5 32 44 111 for (int i=0;i a b c d e for(int i=0; i