Cod sursa(job #1887663)

Utilizator david.sachelarieDavid Sachelarie david.sachelarie Data 21 februarie 2017 18:28:27
Problema Sortare prin comparare Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.73 kb
#include <stdio.h>
#include <stdlib.h>
int v[500000];
void qSort(int egin,int nd){
    int b=egin,e=nd,aux,pivot=v[(egin+nd)/2];
    while(b<=e){
        while(v[b]<pivot) b++;
        while(v[e]>pivot) e--;
        if(b<=e){
            aux=v[b]; v[b]=v[e]; v[e]=aux;
            b++; e--;
        }
    }
    if(egin<e) qSort(egin,e);
    if(b<nd) qSort(b,nd);
}
int main()
{
    FILE*fin,*fout;
    int n,i;
    fin = fopen("algsort.in" ,"r");
    fout = fopen("algsort.out" ,"w");
    fscanf(fin, "%d" ,&n);
    for(i=0;i<n;i++)
        fscanf(fin, "%d" ,&v[i]);
    qSort(0,n-1);
    for(i=0;i<n;i++)
        fprintf(fout, "%d " ,v[i]);
    fprintf(fout, "\n");
    fclose(fin);
    fclose(fout);
    return 0;
}