Generic quicksort method and its testing program.

 
public class GenericQuickSort {

    public static void main( String [] args) {
	String [] strings = {"bananas", "oranges", "grapes", "mango",
			     "lemons", "pineapples", "apples", "kiwi", 
			     "watermelons", "tangerines"};
	quickSort(strings);
	print(strings);
    }

    public static void print(Object [] array) {
	for (int i = 0; i < array.length; ++i) {
	    System.out.println(array[i]);
	}
    }

    public static void quickSort(Comparable [] array) {
	quickSortRec(array, 0, array.length - 1);
    }

    public static void quickSortRec(Comparable [] array, int first, int last) {
	// System.out.println(first + " , " + last);
	// print(array);
	if (first >= last ) return;
	Comparable pivot = array[last];
	// partition the array with this pivot
	int i = first;
	for (int j = first; j < last; ++j) {
	    if (array[j].compareTo(pivot) < 0) {
		Comparable a = array[i];
		array[i] = array[j];
		array[j] = a;
		i++;
	    }
	}
	Comparable a = array[i];
	array[i] = array[last];
	array[last] = a;
	quickSortRec(array,first,i-1);
	quickSortRec(array,i+1,last);
    }
}

This is an example from CSci 2101 course.

The views and opinions expressed in this page are strictly those of the page author. The contents of this page have not been reviewed or approved by the University of Minnesota.