https://blog.csdn.net/shujuelin/article/details/82423852
(上面是啊哈算法上的解释,感觉解释的蛮清楚的,现在对原理还是理解的就是记代码记得不准,这种基础代码不记好比赛的时候现想会很耽误时间,急着要多多回顾啊)
package sjm;
public class Sort {
/**
* @param args
*/
public static void sort(int a[],int l,int h){
if(l>h){
return;
}
int temp=a[l];
int i=l;
int j=h;
while(i<j){
while(a[j]>=temp&&i<j){
j--;
}
while(a[i]<=temp&&i<j){
i++;
}
if(i<j){
int t=a[j];
a[j]=a[i];
a[i]=t;
}
}
a[l]=a[i];
a[i]=temp;
sort(a,l,i-1);
sort(a,i+1,h);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[]={6,1,2,7,9,3,4,5,10,8};
sort(a,0,a.length-1);
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
}
}