sort函数对快排进行了优化,这里提供一个自己写的原始版本
#include <iostream> #include <algorithm> #include <array> #include <vector> #include <functional> using namespace std; template <class InputIterator1, class UnaryPredicate> void _qsort (InputIterator1 first, InputIterator1 last,UnaryPredicate pred) { if(first!=last){ auto mid=partition(first,last,bind2nd(pred,*first));//以第一号元素作为划分元素 _qsort(first,mid,pred); if(first!=mid)_qsort(mid,last,pred); else _qsort(mid+1,last,pred); } } int main(){ array<int,8> t1 = {3,5,7,11,13,17,19,23}; array<int,8> t2 = {19,23,3,5,7,11,13,17}; _qsort(t2.begin(),t2.end(),less<int>()); for_each(t2.begin(),t2.end(),[](int i){cout<<i<<endl;}); return 0; }