import java.io.*; class Main{ private static void quickSort(int[] a, int left, int right){ if(left < right){ int pivot; { // partition int x, i, j; x = a[left]; i = left - 1; j = right + 1; while(true){ do j--; while(a[j]>x); do i++; while(a[i]<x); if(i < j){ // swap int tmp = a[i]; a[i] = a[j]; a[j] = tmp; }else{ pivot = j; break; } } } quickSort(a, left, pivot); quickSort(a, pivot+1, right); } } static void sortArray(int[] a){ quickSort(a, 0, a.length-1); } static void printArray(int[] a){ for(int i=0; i<a.length; i++) System.out.print(" " + a[i]); System.out.println(); } public static void main(String[] args){ int[] a = { 3, 2, 6, 1, 2, 0, 7 }; printArray(a); sortArray(a); printArray(a); } }