Pagini recente » Cod sursa (job #57184) | Cod sursa (job #478496) | Cod sursa (job #2406734) | Cod sursa (job #1394016) | Cod sursa (job #2910066)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
int n;
vector<int> v;
void read(){
cin>>n;
v.resize(n+1);
for(int i=1;i<=n;i++){
cin>>v[i];
}
}
/// [0,r-l]
void sort(int l,int r){
int pivot=rand()%(r-l+1)+l;
swap(v[pivot],v[r]);
int firstFree=l;
for(int i=l;i<r;i++){
if(v[i]<=pivot){
swap(v[firstFree],v[i]);
firstFree++;
}
}
swap(v[r],v[firstFree]);
sort(l,firstFree-1);
sort(firstFree+1,r);
}
void solve(){
sort(1,n);
for(int i=1;i<=n;i++){
cout<<v[i]<<" ";
}
}
int main(){
read();
solve();
return 0;
}