请问这种递归形式的快速排序的递归出口是哪一个语句?
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++#