//快速排序算法----采用递归方法,选择枢轴
#include <iostream>
#include <conio.h>
using namespace std;
//从左到右依次变大
template<class T>
void QuickSort(T *a,const int left,const int right)
{
if (left<right)
{
//选取枢轴进行划分
int i=left;
int j=right+1;//加1后可以简化while(a[j]>pivot)的条件
int pivot=a[left];
do{
do i++;while(a[i]<pivot);
do j--;while(a[j]>pivot);
if(i<j) {
swap(a[i],a[j]);
cout<<i<<"\t"<<j<<endl;
}
}while(i<j);
cout<<i<<"\t"<<j<<endl;
swap(a[left],a[j]);
QuickSort(a,left,j-1);
QuickSort(a,j+1,right);
}
}
int main()
{
int a[]={3,2,1,33};
QuickSort(a,0,2);
for (int i=0;i<3;i++)
{
cout<<a[i];
}
cout<<endl;
getch();
return 0;
}