Pagini recente » Cod sursa (job #2523971) | Cod sursa (job #2674644) | Cod sursa (job #880727) | Cod sursa (job #1329798) | Cod sursa (job #1281376)
#include<fstream>
#include <time.h>
#include <stdlib.h>
using namespace std;
int n, i, v[500003];
int poz(int p, int u){
int t = p+rand()%(u-p);
swap(v[p], v[t]);
int i=p; int j=u;
int ii=0; int jj=-1;
while(i!=j){
if(v[i]>v[j]){
swap(v[i], v[j]);
swap(ii, jj);
ii=-ii;
jj=-jj;
}
i+=ii;
j+=jj;
}
return i;
}
void sort(int p, int u){
if(p<u){
int k=poz(p, u);
sort(p, k-1);
sort(k+1, u);
}
}
ifstream in("algsort.in");
ofstream out("algsort.out");
int main(){
srand(time(0));
in>>n;
for(i=1; i<=n; i++)
in>>v[i];
sort(1, n);
for(i=1; i<=n; i++)
out<<v[i]<<" ";
return 0;
}