Cod sursa(job #659350)

Utilizator blue_phoenixPosea Elena blue_phoenix Data 10 ianuarie 2012 15:40:04
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include <stdio.h>
#define nmax 500010

int v[nmax];

void quick(int li, int ls){
   int i=li,j=ls;
   int pivot=v[li+(ls-li)/2];
   int aux;
   while(i<=j){
       while(v[i]<pivot)i++;
       while(v[j]>pivot)j--;
       if(i<=j){
         aux=v[i];
         v[i]=v[j];
         v[j]=aux;
         i++;
         j--;
       }
   }
   if(li<j)quick(li,j);
   if(i<ls)quick(i,ls);
}

int main(){
   int n;
   FILE *fin=fopen("algsort.in","r");
   fscanf(fin,"%d",&n);
   int i;
   for(i=0;i<n;i++){
     fscanf(fin,"%d",&v[i]);
   }
   fclose(fin);
   quick(0,n-1);
   FILE *fout=fopen("algsort.out","w");
   for(i=0;i<n;i++){
     fprintf(fout,"%d ",v[i]);
   }
  fclose(fout);
return 0;
}