#include
using
namespace std;
template
void
QuickSort(T* a,const int left,const int right);
int
main()
{
int
k[]={8,6,4,2,0,1,3,5,7,9,99}; //最后一个数无效,特别加上
for(int
i=0;i<9;i++)
cout<<k[i]<<"
";
cout<<endl;
QuickSort(k,0,9);
for(int
i=0;i<9;i++)
cout<<k[i]<<"
";
cout<<endl;
return
0;
}
template
void
QuickSort(T* a,const int left,const int right)
{
//选枢轴进行划分
int
i=left;
int
j=right+1;
int
pivot=a[left];
if(left
{
do
{
do
i++;
while(a[i]
do
j--;
while
(a[j]>pivot);
if(i
swap(a[i],a[j]);
}while(i
swap(a[left],a[j]);
QuickSort(a,left,j-1);
QuickSort(a,j+1,right);
}
}
运行结果: