package homeWork;
import javax.swing.JOptionPane;
public class FastSort {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int array[]= {37,2,6,4,89,8,10,12,68,45};
String outputString="";
outputString+="Original array: ";
for (int i = 0; i < array.length; i++) {
outputString+=array[i]+" ";
}
quickSort(array,0,array.length-1);
outputString+="/nafter qucikSort:";
for (int i = 0; i < array.length; i++) {
outputString+=array[i]+" ";
}
JOptionPane.showMessageDialog(null, outputString,"qucik sort",JOptionPane.INFORMATION_MESSAGE);
System.exit(0);
}
public static void quickSort(int array[],int start,int end) {
boolean mark=false;
int temp;
do {
mark=false;
for(int right=end;right>=start;right--) {//右边比较,第一个小的交换
if(array[start]>array[right]) {
mark=true;
temp=array[start];//交换位置
array[start]=array[right];
array[right]=temp;
start=start+1;//新的起始位置
end=right;//新的结束位置
break;
}
}
for (int left = start; left <=end; left++) {//左边比较,第一个大的交换
if(array[end]<array[left]) {
mark=true;
temp=array[end];
array[end]=array[left];
array[left]=temp;
start=left;
end=end-1;
break;
}
}
}while(mark);
System.out.print(start+" ");
System.out.print(end);
System.out.print("/n");
if(start>0)
quickSort(array, 0, end);//左边循环
if(end<9)
quickSort(array, start, 9);//右边循环
}
}