Cod sursa(job #280075)

Utilizator klamathixMihai Calancea klamathix Data 13 martie 2009 10:41:10
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include<stdio.h>

#define MAXN 500001

long int A[MAXN],i,N;

void quicksort(int st, int dr)
{
 int pivot,i,j,aux;
 pivot=A[(st+dr)/2];
 i=st;
 j=dr;
 do
 {
                    while(A[i]<pivot) i++;
                    while(A[j]>pivot) j--;
                    if(i<=j)
                    {
                    // A[i]^=A[j]^=A[i]^=A[j];
                     aux=A[i];
                     A[i]=A[j];
                     A[j]=aux;
                     i++;
                     j--;
                    }
}
while(i<=j);
if(st<j)
 quicksort(st,j);
if(i<dr)
 quicksort(i,dr);

}
                    
int main()
{
    FILE*in=fopen("algsort.in","r");
    FILE*out=fopen("algsort.out","w");
    fscanf(in,"%ld",&N);
    for(i=1;i<=N;i++)
     fscanf(in,"%ld",&A[i]);
     
     quicksort(1,N);
     
     for(i=1;i<=N;i++)
     fprintf(out,"%ld ",A[i]);
     
     
     return 0;
}