Cod sursa(job #2609394)

Utilizator DunareanuDinu Dunareanu Dunareanu Data 2 mai 2020 16:05:51
Problema Sortare prin comparare Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <stdio.h>
#include <stdlib.h>

FILE *fin , *fout;

unsigned int v[500000];

void myqsort(unsigned int v[],int begin,int end) {
    int aux,b=begin,e=end;
    int pivot=v[(begin+end)/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(begin<e) {
        myqsort(v,begin,e);
    }
    if(b<end) {
        myqsort(v,b,end);
    }
}

int main() {
    fin=fopen("algsort.in","r");
    fout=fopen("algsort.out","w");

    int n,i;
    fscanf(fin,"%d",&n);
    for(i=0;i<n;i++) {
        fscanf(fin,"%d",&v[i]);
    }

    myqsort(v,0,n-1);

    for(i=0;i<n;i++) {
        fprintf(fout,"%d ",v[i]);
    }
    fprintf(fout,"\n");

    fclose(fin);
    fclose(fout);
    return 0;
}