Pagini recente » Borderou de evaluare (job #935963) | Borderou de evaluare (job #2876952) | Borderou de evaluare (job #1599105) | Borderou de evaluare (job #319227) | Cod sursa (job #241287)
Cod sursa(job #241287)
#include<iostream>
#include<stdio.h>
FILE *f=fopen("algsort.in","r"),*g=fopen("algsort.out","w");
long a[500002];
void qsort(long st,long dr)
{
long i=st,j=dr,m=a[(st+dr)/2],aux;
do
{
while(a[i]<m&&i<=j) i++;
while(a[j]>m&&i<=j) j--;
if(i<=j) aux=a[i],a[i]=a[j],a[j]=aux,i++,j--;
}while(i<=j);
if(st<j) qsort(st,j);
if(dr>i) qsort(i,dr);
}
int main()
{
long n,nr;char c;
fscanf(f,"%ld\n",&n);
c=fgetc(f);
nr=0;
for(i=1;i<=n;i++)
{
while(c!=' ')
nr=nr*10+c-'0',c=fgetc(f);
a[i]=nr;nr=0;
c=fgetc(f);
}
qsort(1,n);
for(i=1;i<=n;i++)
fprintf(g,"%ld ",a[i]);
return 0;
}