Pagini recente » Borderou de evaluare (job #1569484) | Cod sursa (job #254059) | Cod sursa (job #1739088) | Cod sursa (job #911001) | Cod sursa (job #650669)
Cod sursa(job #650669)
#include<stdio.h>
#include<stdlib.h>
int a[500001],n;
void citire(){
scanf("%d",&n);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
}
void afisare(){
for(int i=1;i<=n;i++)
printf("%d ",a[i]);
}
void qsort(int st,int dr){
int i=st,j=dr,p=a[i+rand()%(j-i)];
while(i<=j){
while(a[i]<p)
++i;
while(a[j]>p)
--j;
if(i<=j)
a[i]=a[i]^a[j]^(a[j]=a[i]),--j,++i;
}
if(st<j)
qsort(st,j);
if(dr>i)
qsort(i,dr);
}
int main(){
freopen("algsort.in","r",stdin);
freopen("algsort.out","w",stdout);
citire();
qsort(1,n);
afisare();
return 0;
}