大佬们求问我这快速排序哪错了。
c语言吧
全部回复
仅看楼主
level 5
ssgggaa 楼主
void myfunction(int n,int m,long int*a)
{
if(n>=m)
return;
int left,i,j,right;
long int temp,temp1;
left=n;
right=m;
i=left;
j=right-1;
temp=a[left];
while(i!=j)
{
while(a[j]<temp&&j>i)
{
j--;
}
while(a[i]>temp&&j>i)
{
i++;
}
if(j>i)
{
temp1=a[i];
a[i]=a[j];
a[j]=temp1;
if((j-i)!=1)
{
--j;
++i;
}
else
--j;
}
a[left]=a[i];
a[i]=temp;
myfunction(n,i-1,a);
myfunction(i+1,m,a);
}
2018年11月16日 14点11分 1
level 5
ssgggaa 楼主
降序排列
2018年11月16日 14点11分 2
level 5
ssgggaa 楼主
大佬们
2018年11月17日 12点11分 3
level 9
while(i!=j)可能造成死循环
2018年11月17日 15点11分 4
1