Cod sursa(job #3253677)

Utilizator vladorovOroviceanu Vlad vladorov Data 4 noiembrie 2024 10:23:30
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 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;

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

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

        i+=di;
        j+=dj;
    }

    return i+1;
}

void quicksort(int a, int b){
    if(a>=b) return;

    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;
}