算法过程描述:
1、在数组中,选择其中一个作为“基数”;
2、所有小于“基数”的都移到“基数”左边,所有大于“基数”的数据都移到“基数”右边;
3、对于“基数”左右两个子集,分别重复1、2步骤,直到所有子集剩下一个数据为止,排序完成;
public class QuickSortTest{
public static void sort(int[] array, int low, int high){
if(low>high){
return;
}
int i=low,j=high;
int index = array[i];
while(i<j){
while(i<j && array[j] >=index){
j--;
}
if(i<j){
array[i]=array[j];
i++;
}
while(i<j && array[i]<index){
i++;
}
if(i<j){
array[j]=array[i];
j--;
}
}
array[i]=index;
sort(array,low,i-1);
sort(array,i+1,high);
}
public static void main(String[] args){
int a[]={2,9,0,8,7,1,5,4,3,6};
sort(a,0,a.length-1);
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
}