Cod sursa(job #1019380)

Utilizator Emanuel9Dumitru Emanuel Cristian Emanuel9 Data 30 octombrie 2013 23:45:16
Problema Sortare prin comparare Scor 20
Compilator c Status done
Runda Arhiva educationala Marime 0.75 kb
#include "stdio.h"
#include "stdlib.h"

int v[500001],n;
FILE *f,*g;
void qs(int s,int d)
{
    if(s<d){
        int i,j;
        int aux;
        int pivot;
        i=s;
        j=d;
        pivot = v[rand()%i+j];
        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(s<j) qs(s,j);
            if(i<d) qs(i,d);

        }
    }
}
int main()
{

    f=fopen("algsort.in","r");
    g=fopen("algsort.out","w");
    fscanf(f,"%d",&n);

    int i;
    for(i=1;i<=n;i++)
        fscanf(f,"%d",&v[i]);
    qs(1,n);

    for(i=1;i<=n;i++)
        fprintf(g,"%d ",v[i]);
    fclose(f);
    fclose(g);
    return 0;
}