void qSortArray(int array[], int start, int last)
{
int low = start;
int high = last;
if (low < high)
{
while (low < high)
{
while ((array[low] <= array[start]) && (low < last))
{
low++; // 满足小于基准的条件,指针右移
}
while ((array[high] >= array[start]) && (high > start))
{
high--; // 满足大于基准的条件,指针左移
}
if (low < high)
{
swap(array[low], array[high]); // 交换两个不满足条件的元素
}
else
{
break;
}
}
swap(array[start], array[high]); // 插入基准元素
qSortArray(array, start, high - 1);
qSortArray(array, high + 1, last);
}
}
qSortArray(arr, 1/*一般从一开始*/, arr.length());