import java.util.*;import java.io.*;
public class QuickSort{ private int findPartition(Comparable [] data,int min,int max) { int left; int right; Comparable temp; Comparable partitionElement = data[min];
left = min; right = max; while (left<right) { while(data[left].compareTo(partitionElement) <=0 && left<right) left++; while(data[right].compareTo(partitionElement)>0) right--; if(left<right) { temp = data[left]; data[left] = data[right]; data[right] = temp; } } temp = data[min]; data[min] = data[right]; data[right] = temp; return right; } public void quickSort (Comparable [] data,int s,int e) { int p; if (s<e) { p=e; p=this.findPartition(data,s,p); this.quickSort(data,s,p-1); this.quickSort(data,p+1,e); } } public static void main (String [] args) throws IOException { String inString ; StringTokenizer tokenizer; Integer [] elements; QuickSort qs = new QuickSort(); BufferedReader in = new BufferedReader( new InputStreamReader(System.in)); System.out.println("Please input the size: "); inString = in.readLine(); elements = new Integer[Integer.parseInt(inString)]; System.out.println("Enter the numbers of elements : "); inString = in.readLine(); tokenizer = new StringTokenizer(inString); for (int i =0; i<elements.length && tokenizer.hasMoreTokens();i++) { elements[i] = Integer.parseInt(tokenizer.nextToken()); } qs.quickSort(elements,0,elements.length-1); System.out.println("after sorted :"); for (int i=0;i<elements.length;i++) { System.out.println(elements[i]); } }}