JAVA实现:
/**
* 一定是深刻理解了算法,并且完全按照算法的意思来实现,
* 快排是从大端开始,并且大端和小端是交替进行的,交替的同时判断i和j的值,同时把key存放到一个变量中, 不需要每次都 新建一个变量做交换操作
**/
private static void quickSort(int[] a, int start, int end, int size) {
if (size == 1) {
return;
}
if (size > 1) {
int key = a[start];
int i = start;
int j = end;
while (i < j) {
while (i < j && a[j] > key) {
j--;
}
a[i] = a[j];
while (i < j && a[i] <= key) {
i++;
}
a[j] = a[i];
}
a[i] = key;
quickSort(a, start, i - 1, i - start);
quickSort(a, i + 1, end, end - i);
}
}