import java.util.*; class QuickSort { public static void swap(int[] data, int x, int y) { int temp = data[x]; data[x] = data[y]; data[y] = temp; } public static int partition(int[] data, int left, int right) { int i, j; i = left; for(j = left; j <= right; j++) { if(data[j] < data[i]) { swap(data, i, j); i++; swap(data, i, j); } } return i; } public static void recursiveQuickSort(int[] data, int left, int right) { if (left < right) { int p = partition(data, left, right); recursiveQuickSort(data, left, p-1); recursiveQuickSort(data, p+1, right); } } public static void quickSort(int[] data, int n) { recursiveQuickSort(data, 0, n-1); } public static void main(String[] args) { // Generate a random integer array of size n int[] data; int n = 10; data = new int[n]; // Random is a java class defined java.util // To learn more about this class see // http://java.sun.com/j2se/1.4.2/docs/api/java/util/Random.html Random rand; rand = new Random(); for(int i = 0; i < n; i++) data[i] = rand.nextInt(20); for(int i = 0; i < n; i++) System.out.print(data[i]+" "); System.out.println(); quickSort(data, n); for(int i = 0; i < n; i++) System.out.print(data[i]+" "); System.out.println(); } }