int Partion(vector<int > &vec , int begin , int end ){
if(begin == end ){
return begin;
}
if(begin < 0 || end > vec.size() - 1){
cout<<"ERROR";
return -1;
}
int tmp = vec[begin];
while (begin < end ){
while(begin < end && vec[end ] >=tmp ){//记得这里是大于小于,不然会出现死循环
end--;
}
if(begin < end ){
vec[begin] = vec[end];
}
while(begin < end &&vec[begin] < tmp){//也可以小于等于
begin++;
}
if(begin < end){
vec[end] = vec[begin] ;
}
}
vec[begin ] = tmp;
return begin;
}
void QuickSort( vector<int> &vec , int begin , int end){
if(vec.size() == 0){
return;
}
if(begin < end){
int index = Partion(vec , begin , end );
QuickSort(vec , begin , index -1);
QuickSort(vec , index + 1 , end);
}
}
据说快排要手写,没事看看吧。