int partition(int * A, int left, int right)
{
int i= left,j= right;
int x = A[left];
while (i < j)
{
while (i <j && A[j]>x)
--j;
if (i < j)
A[i++] = A[j];
while (i <j&&A[i] < x)
++i;
if (i < j)
A[j--] = A[i];
}
A[i] = x;
return i;
}
void qsort(int * A, int left, int right)//递归将关键字两边分成有序的数组
{
if (left < right)
{
int p1 = partition(A, left, right);
qsort(A, left, p1 - 1);
qsort(A, p1 + 1, right);
}
}
int* quickSort(int* A, int n) {
qsort(A, 0, n - 1);
return A;
}
void main()
{
for (int i = 0; i < n; i++)
{
cout << A[i] << endl;
}
quickSort(A, n);
cout << "快速排序后的结果为: " << endl;
for (int i = 0; i < n; i++)
{
cout << A[i] << endl;
}
}