Cod sursa(job #2849827)

Utilizator biancalautaruBianca Lautaru biancalautaru Data 15 februarie 2022 20:40:37
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
#define DIM 500001
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n,i,v[DIM];

int poz(int st,int dr) {
    int i=st,j=dr;
    int di=0,dj=-1;
    int aux;
    while (i<j) {
        if (v[i]>v[j]) {
            swap(v[i],v[j]);
            aux=di;
            di-=dj;
            dj=-aux;
        }
        i+=di;
        j+=dj;
    }
    return i;
}

void sortare(int st,int dr) {
    if (st<dr) {
        int p=poz(st,dr);
        sortare(st,p-1);
        sortare(p+1,dr);
    }
}

int main() {
    fin>>n;
    for (i=1;i<=n;i++)
        fin>>v[i];
    sortare(1,n);
    for (i=1;i<=n;i++)
        fout<<v[i]<<" ";
    return 0;
}