Cod sursa(job #1435115)

Utilizator alittlezzCazaciuc Valentin alittlezz Data 12 mai 2015 10:05:24
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
#include <fstream>

using namespace std;

int v[500005];

void quicksort(int a[], int st, int dr);

int main() {
    int i,N;
    ifstream f("algsort.in");
    ofstream g("algsort.out");
    f>>N;
    for(i=0;i<N;i++){
        f>>v[i];
    }
    quicksort(v, 0, N-1);
    for(i=0;i<N;i++){
        g<<v[i]<<" ";
    }
    return 0;
}

void quicksort(int a[], int st, int dr){
    int aux,mini,maxi,mij;
    mini = st;
    maxi = dr;
    mij = a[(st+dr)/2];
    do{
        while(a[mini]<mij){
            mini++;
        }
        while(mij<a[maxi]){
            maxi--;
        }
        if(mini<=maxi){
            aux = a[mini];
            a[mini++] = a[maxi];
            a[maxi--] = aux;
        }
    }while(mini<=maxi);
    if(st<maxi){
        quicksort(a, st, maxi);
    }
    if(mini<dr){
        quicksort(a, mini, dr);
    }
}