Cod sursa(job #323931)

Utilizator bugyBogdan Vlad bugy Data 14 iunie 2009 10:31:10
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.03 kb
#include<stdio.h>   
#include<iostream>   
#define dim 500001      
using namespace std;      
unsigned long a[dim];      
unsigned long quicksort(unsigned long inceput, unsigned long ultimul)      
{long long i,j,temp,aux;      
  i=inceput;      
  j=ultimul;      
  temp=a[(i+j)/2];      
 do     
   {while(a[i]<temp)      i=i+1;      
    while(a[j]>temp)      j=j-1;      
    if(i<j)      
     {aux=a[i]; a[i]=a[j]; a[j]=aux;}      
    if(i<=j)      
     {j=j-1;      
      i=i+1;      
     }      
   }while(i<=j);      
   if(inceput<j)    quicksort(inceput,j);      
   if(i<ultimul)    quicksort(i,ultimul);      
}      
int main()      
{long long n,i;      
FILE *f=fopen("algsort.in","r"),*g=fopen("algsort.out","w");   
        
 fscanf(f,"%lu",&n);     
  for(i=1;i<=n;i++)    
      fscanf(f,"%lu",&a[i]);      
  quicksort(1,n);      
  for(i=1;i<=n;i++)      
     fprintf(g,"%lu ",a[i]," ");        
      fprintf(g,"\n");      
fclose(f);      
fclose(g);      
return 0;      
}