public class Quicksort{
public static int partition(int []a, int l, int r){
int m = l;
for (int i = l; i < r; i++) {
if (a[i] < a[r]) {
int temp = a[i];
a[i] = a[m];
a[m] = temp;
m++;
}
}
int temp = a[r];
a[r] = a[m];
a[m] = temp;
return m;
}
public static void quickSort(int [] a, int l, int r){
if (l <= r) {
int q = partition(a, l, r);
quickSort(a, l, q - 1);
quickSort(a, q + 1, r);
}
}
}
具体的算法实现原理参考算法导论
public static int partition(int []a, int l, int r){
int m = l;
for (int i = l; i < r; i++) {
if (a[i] < a[r]) {
int temp = a[i];
a[i] = a[m];
a[m] = temp;
m++;
}
}
int temp = a[r];
a[r] = a[m];
a[m] = temp;
return m;
}
public static void quickSort(int [] a, int l, int r){
if (l <= r) {
int q = partition(a, l, r);
quickSort(a, l, q - 1);
quickSort(a, q + 1, r);
}
}
}
具体的算法实现原理参考算法导论