//快速排序 优化型
//没有采用交换,而是使用的赋值。
#include <iostream>
using namespace std;
void print(int * a,int n)
{
for(int i = 0;i < n ; i++)
{
cout << a[i] << ' ' ;
}
cout << endl;
}
void sort(int *a,int n)
{
if(n<1)
{
return ;
}
int L = 0;
int R = n - 1;
int t = a[L];
while(L<R)
{
while(L<R && t <= a[R])
{
R--;
}
a[L] = a[R];
while(L<R && t >= a[L])
{
L++;
}
a[R] = a[L];
}
a[L] = t;
sort(a,L);
sort(a+L+1,n-L-1);
}
int main()
{
int a[10] = {1,4,7,2,5,8,3,6,9,0};
sort(a,10);
cout << "排序结果:" ;
print(a,10);
}