import java.awt.print.Printable;
import java.util.Scanner;
/**
* 快速排序是一个速度非常快的交换排序算法,思想很简单,就是从待排序的数据中任取一个数据
* 作为分解值,比它小的数据元素放在左边,大的放在右边
* @author Administrator
*
*/
public class sort04 {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
String str=scanner.nextLine();
String[] data=str.trim().split("\\s{1,}");
int[] a=new int[data.length];
for(int i=0;i<data.length;i++){
a[i]=Integer.parseInt(data[i]);
}
print(a);
quicksort(a,0,a.length-1);
System.out.println("排序后的数组:");
print(a);
}
public static void quicksort(int[] data,int start,int end){
if(start>=end){
return ;
}
int pivot=data[start];
int i=start+1;
int j=end;
while(true){
while(i<=end&&data[i]<pivot){
i++;
}
while(j>start&&data[j]>pivot){
j--;
}
if(i<j){
int temp=data[i];
data[i]=data[j];
data[j]=temp;
}
else{
break;
}
}
int temp=data[start];
data[start]=data[j];
data[j]=temp;
print(data);
quicksort(data, start, j-1);
quicksort(data, j+1, end);
}
public static void print(int[]data){
for(int i=0;i<data.length;i++){
System.out.println(data[i]+"\t");
}
System.out.println( );
}
}