int* onceSORT(int *src,int *z,int *y) //一趟快排
{
int *l=z;
int *r=y;
int temp=*l;
while(l<r)
{
while(*r>=temp&&l<r) //后边的条件保证不越界
{
r--;
}
if(*r<temp&&l<r)
{
*l=*r;
l++;
}
while(*l<temp&&l<r)
{
l++;
}
if(*l>temp&&l<r)
{
*r=*l;
r--;
}
}
*r=temp;
return r;
}
if(l<r)
{
int *mid=QSORT(src,l,r);
myqsort(src,src,mid);
myqsort(mid+1,mid+1,r);
}
}
{
int *l=z;
int *r=y;
int temp=*l;
while(l<r)
{
while(*r>=temp&&l<r) //后边的条件保证不越界
{
r--;
}
if(*r<temp&&l<r)
{
*l=*r;
l++;
}
while(*l<temp&&l<r)
{
l++;
}
if(*l>temp&&l<r)
{
*r=*l;
r--;
}
}
*r=temp;
return r;
}
void myqsort(int *src,int*l,int *r) //递归调用 l指向字符串头 r指向字符串尾
{if(l<r)
{
int *mid=QSORT(src,l,r);
myqsort(src,src,mid);
myqsort(mid+1,mid+1,r);
}
}