#include <iostream>
using namespace std;
void swap(int* p,int* q)
{
int temp = *p;
*p = *q;
*q = temp;
}
//快速排序
int partition(int *ptr,int first, int last)
{
int temp = ptr[first];
int i = first + 1, j = last;
while(i < j)
{
while(ptr[i] < temp && i <= last)
++i;
while(ptr[j] > temp)
--j;
if(i < j)
{
swap(&ptr[i],&ptr[j]);
++i;
--j;
}
}
swap(&ptr[first],&ptr[j]);
return j;
}
void quickSort(int *ptr,int first,int last)
{
if(first < last)
{
int q = partition(ptr,first,last);
quickSort(ptr,first,q-1);
quickSort(ptr,q+1,last);
}
}
int main()
{
int a[] = {2,23,45,1,8,2,0};
for(int i =0; i <= 6; ++i)
{
std::cout << a[i] << " ";
}
cout << endl;
//mergeSort(a,0,6);
quickSort(a,0,6);
for(int i =0; i <= 6; ++i)
{
std::cout << a[i] << " ";
}
std::cout << std::endl;
return 0;
}