以s[l]爲基準,從右向左比較,找到比它小的就放到s[i]
從左向右比較,找到比它大的就放到s[j],
當i==j時,退出循環,s[i]=x
時間複雜度是nlogn
public class quickSort {
static void quickSortM(int[] s, int l, int r){
if (l < r){
int x = s[l];
int i = l,j = r;
while (i < j){
while (i < j && s[j] >= x){
j--;
}
if (i<j)
s[i++] = s[j];
while (i <j && s[i] < x){
i++;
}
if (i<j){
s[j--] = s[i];
}
}
s[i] = x;
quickSortM(s,l,i-1);
quickSortM(s,i+1,r);
}
}
public static void main(String[] args){
int s[] = {72,92,3,88,43,100,56};
quickSortM(s,0,s.length-1);
int j;
for (j=0;j<s.length;j++)
System.out.println(s[j]);
}
}