public static void quickSort(int start, int end) {
int x = data[start];
int pLeft = start, pRight = end;// 以第一个数为参照做比较
if (pLeft >= pRight){
return;
}
while (pLeft < pRight) {
while (pLeft < pRight && data[pRight] >= x) {
pRight--; // 不小于分界值的留在右边,遇到小于的停止
}
data[pLeft] = data[pRight];
while (pLeft < pRight && data[pLeft] <= x) {
pLeft++;// 小于分界值的留在左边,遇到不小于的停止
}
data[pRight] = data[pLeft];
}
data[pRight] = x;
quickSort(start, pRight - 1);
quickSort(pRight + 1, end);// 递归
}