Cod sursa(job #3255082)

Utilizator Horia123144Musat Horia Gabriel Horia123144 Data 9 noiembrie 2024 13:29:56
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n,v[500005];
int poz(int st, int dr)
{
    int di=0,dj=-1,i=st,j=dr,aux;
    while(i<j)
    {
        if(v[i]>v[j])
        {
            aux=v[i];
            v[i]=v[j];
            v[j]=aux;
            aux=di;
            di=-dj;
            dj=-aux;
        }
        i+=di;
        j+=dj;
    }
    return i;
}
void sorteaza(int st, int dr)
{
    if (st < dr)
    {
        int pozitie=poz(st,dr);
        sorteaza(st,pozitie-1);
        sorteaza(pozitie+1,dr);
    }
}

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