Cod sursa(job #1699491)

Utilizator andreicoman299Coman Andrei andreicoman299 Data 7 mai 2016 15:13:49
Problema Sortare prin comparare Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.77 kb
#include <stdio.h>
#include <stdlib.h>
#define MAXN 500000

int v[MAXN];
void myqsort(int begin, int end){
    int b=begin, e=end, pivot=v[(b+e)/2];
    while(b<=e){
        while(v[b]<pivot) b++;
        while(v[e]>pivot) e--;
        if(b<=e){
            int aux=v[b];
            v[b]=v[e];
            v[e]=aux;
            b++;
            e--;
        }
    }
    if(b<end) myqsort(b, end);
    if(begin<e) myqsort(begin, e);
}

int main()
{
    int n, i;
    FILE*fi,*fo;
    fi=fopen("algsort.in","r");
    fo=fopen("algsort.out","w");
    fscanf(fi,"%d", &n);
    for(i=0;i<n;i++)
        fscanf(fi,"%d", &v[i]);
    myqsort(0, n-1);
    for(i=0;i<n;i++)
        fprintf(fo,"%d ", v[i]);
    fclose(fi);
    fclose(fo);
    return 0;
}