Cod sursa(job #290224)

Utilizator bugyBogdan Vlad bugy Data 27 martie 2009 17:26:53
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 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;   
}