Pagini recente » Cod sursa (job #1520005) | Cod sursa (job #276082) | Cod sursa (job #2213069) | Cod sursa (job #1870239) | Cod sursa (job #1346066)
#include<fstream>
#include<time.h>
#include<stdlib.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n,i;
int v[500001];
int poz(int st,int dr){
int x=rand()%(dr-st)+st;
int aux;
aux=v[st];
v[st]=v[x];
v[x]=aux;
int ii=0,jj=-1,i=st,j=dr;
while(i<j){
if(v[i]>v[j]){
aux=v[i];
v[i]=v[j];
v[j]=aux;
aux=ii;
ii=-jj;
jj=-aux;
}
i+=ii;
j+=jj;
}
return i;
}
void sorteaza(int st,int dr){
if(st<dr){
int p=poz(st,dr);
sorteaza(st,p-1);
sorteaza(p+1,dr);
}
}
int main(){
srand(time(0));
fin>>n;
for(i = 1; i <= n; i++){
fin>>v[i];
}
sorteaza(1, n);
for(i = 1; i <= n; i++){
fout<<v[i]<<" ";
}
return 0;
}