题解 | #排序#
排序
http://www.nowcoder.com/practice/2baf799ea0594abd974d37139de27896
基于泛型lambda表达式与迭代器实现的快排
vector<int> MySort(vector<int>& arr) { // write code here auto quickSort = [&](auto& func, auto begin, auto end, auto cmp){ auto partition = [](auto begin, auto end, auto cmp){ auto pivotK = *begin; --end; while(begin < end){ while(begin < end && !cmp(*end,pivotK))--end; swap(*begin,*end); while(begin < end && cmp(*begin,pivotK))++begin; swap(*begin,*end); } return begin; }; if(begin == end)return; auto pos = partition(begin,end,cmp); func(func,begin,pos,cmp); func(func,++pos,end,cmp); }; quickSort(quickSort,arr.begin(),arr.end(),less<int>()); return arr; }