Cod sursa(job #1012731)

Utilizator Emanuel9Dumitru Emanuel Cristian Emanuel9 Data 19 octombrie 2013 16:09:28
Problema Sortare prin comparare Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.76 kb
#include <stdio.h>
#include <stdlib.h>
int v[500000],n;
FILE *f;
void citeste(int v[],int n)
{
    int i;
    f=fopen("algsort.in","r");
    fscanf(f,"%d",&n);
    for(i=0;i<n;i++)
        fscanf(f,"%d",&v[i]);
    fclose(f);
}
void qs(int s,int d)
{
    int i,j;
    int aux;
    i=s;j=d;
    int 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);

    }
}
void afis(int v[],int n)
{
    int i;
    f=fopen("algsort.out","w");
    for(i=0;i<n;i++)
        fprintf(f,"%d",v[i]);
    fclose(f);
}
int main()
{
    citeste(v,n);
    qs(0,n-1);
    afis(v,n);
    return 0;
}