Pagini recente » Borderou de evaluare (job #2655722) | Borderou de evaluare (job #1330396) | Cod sursa (job #1200373) | Borderou de evaluare (job #2442881) | Cod sursa (job #748457)
Cod sursa(job #748457)
#include<fstream>
#include<stdlib.h>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[500000],n,pp,si,aux;
void read(){
f>>n;
for(int i=0;i<n;i++)
f>>a[i];
}
void qsort(int i,int j){
if(i<j){
pp=i+rand()%(j-i);
si=i;
aux=a[j];
a[j]=a[pp];
a[pp]=aux;
for(int k=i;k<j;k++)
if(a[k]<a[j]){
aux=a[si];
a[si]=a[k];
a[k]=aux;
++si;
}
aux=a[j];
a[j]=a[si];
a[si]=aux;
qsort(i,si-1);
qsort(si+1,j);
}
}
int main(){
read();
qsort(0,n-1);
for(int i=0;i<n;i++)
g<<a[i]<<" ";
return 0;
}