QuickSort实现

    技术2022-05-11  115

    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]);  }   }}


    最新回复(0)