Cod sursa(job #241282)

Utilizator Bogdan_tmmTirca Bogdan Bogdan_tmm Data 9 ianuarie 2009 18:49:00
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#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 i,j=0;char c;
 fscanf(f,"%ld\n",&i);
 c=fgetc(f);
 i=0;
 while(!feof(f))
 {
  if(c==' ')
   a[++j]=i,i=0;
  else
   i=i*10+c-'0';
  c=fgetc(f);
 }
 qsort(1,j);
 for(i=1;i<=j;i++)
  fprintf(g,"%ld ",a[i]);
 return 0;
}