void quick_sort(int *A, int p, int q)//A为待排数组指针,p为起始编号,q为结尾编号
{
int x,temp;
x = A[p];
int i=p+1,j=q;
if (i>j)
{
return;
}
while (i<j)
{
while (A[i]<=x&&i<j)
{
i++;
}
while (A[j]>x&&i<j)
{
j--;
}
if (i<j)
{
temp = A[i];
A[i] = A[j];
A[j] = temp;
}
}
if (i == j)
{
if (A[i]>x)
{
A[p] = A[i-1];
A[i-1] = x;
quick_sort(A,p,i-2);
quick_sort(A,i,q);
}
if (A[i]<=x)
{
A[p] = A[i];
A[i] = x;
quick_sort(A,p,i-1);
quick_sort(A,i+1,q);
}
}
}