关于快排的一个小问题
今天想学下快排,到网上翻了翻别人的代码:
void quicksort(int a[],int left,int right)
{
int i,j;
int t,temp;
if(left>right)
return;
i=left;
j=right;
temp=a[left];
while(i!=j)
{
while(a[j]>=temp&&i<j)
j--;
while(a[i]<=temp&&i<j)
i++;
if(i<j)
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
a[left]=a[i];
a[i]=temp;
quicksort(a,left,i-1);
quicksort(a,i+1,right);
}
我试着抄了下,不小心抄成了这样:

void quicksort(int a[],int left,int right)
{
int i,j;
int t,temp;
if(left>right)
return;
i=left;
j=right;
temp=a[left];
while(a[j]>=temp&&i<j)
j--;
while(a[i]<=temp&&i<j)
i++;
if(i<j)
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
a[left]=a[i];
a[i]=temp;
quicksort(a,left,i-1);
quicksort(a,i+1,right);
}
结果也能运行,我懵了。
求指教。