快排:// 修改自《C programing language》
#include<iostream>
#include<iterator>
#include<algorithm>
void qsort(int v[], int left, int right)
{
int i,last;
if(left >= right)
return;
std::swap(v[left],v[(left+right)/2]);
last = left;
for(i = left+1; i <= right; ++i)
{
if(v[i] < v[left])
std::swap(v[i],v[++last]);
}
std::swap(v[left],v[last]);
qsort(v,left,last-1);
qsort(v,last+1,right);
}
int main()
{
int a[]={5,3,1,6,8,9,4};
qsort(a,0,7-1);
std::copy(a,a+7,std::ostream_iterator<int>(std::cout," "));
return 0;
}