首先上一张图:
然后写出如下java代码,请多多指正:
public class quickSort {
public static void main(String[] args) {
int[] a = new int[]{6,3,9,14,12,7,2};
mysort(a,0,a.length-1);
for(int i =0;i<a.length;i++)
System.out.println(a[i]);
}
public static void mysort(int[] a,int left,int right) {
int i = left;
int j = right;
int stand = a[left];
while(i<j&&left<=i&&right>=j){
if(a[i]>a[j]&&a[i]==stand){
myswap(a,i,j);
i++;
}
else if(a[i]>a[j]&&a[j]==stand){
myswap(a,i,j);
j++;
}
else if(a[i]==stand){
j--;
}
else if(a[j]==stand){
i++;
}
}
if(left<i-1)
mysort(a,left,i-1);
if(right>i+1)
mysort(a,i+1,right);
}
public static void myswap(int[] a,int i,int j) {
int temp;
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}