今天再来个经常用的排序算法----快速排序!
</pre><p><pre name="code" class="cpp">int partition(int *A, int len)
{
if(A==NULL||len<=0)
return -1;
//int pivot = ;
//swap(&A[0], &A[pivot]);
int key = A[0];
int pre=0;
int i=0;
for(i=0; i<len; i++)
{
if(A[i] < key)
{
pre++;
if(pre!=i)
swap(&A[pre], &A[i]);
}
}
swap(&A[pre], &A[0]);
return pre;
}
void quickSort(int *A, int len)
{
if(A==NULL||len<=0)
{
return;
}
int pivot = partition(A, len);
if(pivot < 0)
return;
quickSort(A, pivot);
quickSort(A+pivot+1, len-pivot-1);
}
void printArray(int *A, int len)
{
for(int i=0; i<len; i++)
{
cout << A[i] << endl;
}
}