这么基础的东西不应该生疏了!
//快速排序
#include<vector>
#include<iostream>
#include<stdio.h>
using namespace std;
int partion(int low,int high,vector<int>&array){
int pivot=array[low];
while(low<high){
while(low<high&&array[high]>=pivot) --high;//不满足low<high时 low==high
array[low]=array[high]; //这里不要有指针的移动
while(low<high&&array[low]<=pivot) ++low;
array[high]=array[low];
}
array[low]=pivot;
return low;
}
void quickSort(int low,int high,vector<int>&array){
if(low>=high) return;///
int k=partion(low,high,array);
quickSort(low,k-1,array);
quickSort(k+1,high,array);
}
void qSort(vector<int>&array){
quickSort(0,array.size()-1,array);
}
//测试
int main(){
int size;
cin>>size;
vector<int> array(size);
for(int i=0;i<size;++i){
cin>>array[i];
}
qSort(array);
for(int i=0;i<array.size();++i){
cout<<array[i]<<endl;
}
return 0;
}