请问这种递归形式的快速排序的递归出口是哪一个语句?
void QuickSort(int *p, int low, int high)
{
if (low< high)
{
int i = low, j = high, pivot = p[low];
while (i < j)
{
while (i < j && p[j] >= pivot) // 从右向左找第一个小于pivot的数
j--;//退出while时会产生一个j,使得p[j]<pivot;
if (i < j)//如果这个j比i大
p[i++] = p[j];//令p[i]=p[j],然后递增i;这么写比{p[i]=p[j];i++}更简洁!!
while (i < j && p[i]< pivot) // 从左向右找第一个大于等于pivot的数
i++;
if (i < j)
p[j--] = p[i];///令p[j]=p[i],然后递减j
}
p[i] = pivot;//pivot就位
// 递归调用
QuickSort(p, 0, i - 1); //继续快排左区间
QuickSort(p, i + 1, high);//排列右区间,之前利用了j,使得不用每次都更新右区间的右端点
}
}
#C/C++#

