我正在为类实现快速排序功能。我们必须按照她在课堂上用她的伪代码教我们的方式来做,否则我们不会得到学分。
我收到一个运行时错误,显示“变量 'quickArray' 周围的堆栈已损坏”
我玩了调试器,但仍然无法弄清楚问题所在。我认为这与我的 Partition() 函数有关,但我不确定。任何人都可以帮忙吗?Iv 在下面发布了 main()、QuickSort() 和 Partition() 函数。
int main()
{
int quickArray[10] = { 5 ,99, 32, 4, 1, 12, 15 , 8, 13, 55};
int P = quickArray[0];
int R =quickArray[9];
QuickSort(quickArray,P,R);
return 0;
}
..................................................... …………………………………………………………………………………………………………………………………………
void QuickSort(int ar2[],int P, int R)
{
int Q;
if( P < R )
{
Q = Partition(ar2,P,R);
QuickSort(ar2,P,Q-1);
QuickSort(ar2,Q+1,R);
}
}
..................................................... .........................................................
int Partition(int ar2[],int P, int R)
{
int x = ar2[R];
int i = P-1;
int temp;
for(int j = P; j <= R-1; j++)
{
if( ar2[j] < x )
{
i = i +1;
temp = ar2[i];
ar2[i] = ar2[j];
ar2[j] = temp;
}
temp = ar2[R];
ar2[R] = ar2[i+1];
ar2[i+1] = temp;
}
return (i+1);
}