Pagini recente » Cod sursa (job #2189211) | Cod sursa (job #2377902) | Cod sursa (job #2140496) | Cod sursa (job #2367152) | Cod sursa (job #257490)
Cod sursa(job #257490)
#include <stdio.h>
#define MAX 500500
#define IN "algsort.in"
#define OUT "algsort.out"
FILE *fin=fopen(IN,"r");
FILE *fout=fopen(OUT,"w");
int a[MAX];
int n;
void sort(int,int);
int main()
{
int i;
fscanf(fin,"%d",&n);
for(i=1;i<=n;++i)
fscanf(fin,"%d", &a[i]);
sort(1,n);
for(i=1;i<=n;++i)
fprintf(fout,"%d ",a[i]);
fprintf(fout,"\n");
return 0;
}
void sort(int st,int dr)
{
int i=st;
int j=dr;
int sch=a[(st+dr)/2];
int tmp;
do
{
while(a[i]<sch)
++i;
while(a[j]>sch)
--j;
if(i<=j)
{
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
++i;
--j;
}
}while(i<=j);
if(st<j)
sort(st,j);
if(i<dr)
sort(i,dr);
}