分割
函数partition(A,p,r)可以将数组A【p,r】分割成A【p,q-1】和A【q+1,r】两部分并返回下标q的值。其中,前面一部分均小于A【q】,后面一部分均大于A【q】.
【注意】这里的r是数组A末尾元素的下标,进行分割时需要以A[r]为基准 。
int partition(int A[],int p,int r)
{
int x,i,j;
x=A[r];
i=p-1;
for(int j=p;i<=r-1;j++)
{
if(A[j]<=x)
{
i++;
swap(A[i],A[j]);
}
}
swap(A[i+1],A[r]);
return i+1;
}