Cod sursa(job #3253818)

Utilizator vladorovOroviceanu Vlad vladorov Data 4 noiembrie 2024 21:32:40
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>

using namespace std;

int v[500000];

int poz(int a, int b){
    int di=0, dj=-1;
    int i=a, j=b;
    int aux;

    while(i<j){
        if (v[i] > v[j]) {
            swap(v[i], v[j]);

            swap(di, dj);
            di*=-1; dj*=-1;
        }

        i+=di;
        j+=dj;
    }

    return i;
}

void quicksort(int a, int b){
    if(a<b){
        int p=poz(a, b);

        quicksort(a, p-1);
        quicksort(p+1, b);
    }
}

int main(){
    ifstream fin("algsort.in");
    ofstream fout("algsort.out");

    int n; fin>>n;

    for(int i=0; i<n; i++){
        fin>>v[i];
    }

    quicksort(0, n-1);

    for(int i=0; i<n; i++){
        fout<<v[i]<<" ";
    }

    return 0;
}