我有类似的东西,我希望第一个元素作为支点。 为什么这个程序仍然不起作用?
void algSzyb1(int tab[],int l,int p)
{
int x,w,i,j;
i=l; //l is left and p is pivot, //i, j = counter
j=p;
x=tab[l];
do
{
while(tab[i]<x) i++;
while(tab[j]>x) j--;
if(i<=j)
{
w=tab[i];
tab[i]=tab[j];
tab[j]=w;
i++;
j--;
}
}
while(!(i<j));
if(l<j) algSzyb1(tab,l,j);
if(i<p) algSzyb1(tab,i,p);
}
答案 0 :(得分:1)
查看代码,而不是真正检查它的作用,只看单个行,这一行突出:
while(!(i<j));
我看着那条线,我想:这里的某处有一个小虫。我实际上没有查看代码,所以我不知道bug是什么,但我看这一行,看起来不对。