Cod sursa(job #2611202)

Utilizator ParALIParaschiv Alexandru-Andrei ParALI Data 6 mai 2020 16:05:20
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int N, v[500001];
int pivot(int p, int u)
{
    int aux;
    int cp=0, cu=-1;///cp = pasul de crestere al lui p; cu = --||-- al lui u;
    while(p<u)
    {
        if(v[p]>v[u])
        {
            aux=v[p];
            v[p]=v[u];
            v[u]=aux;

            aux=cp;
            cp=-cu;
            cu=-aux;
        }
    p=p+cp;
    u=u+cu;
    }
    return p;
}

void quicksort(int p, int u)
{
    if(p<u)
    {
        int k=pivot(p,u);
        quicksort(p,k-1);
        quicksort(k+1,u);
    }
}

int main()
{
    f>>N;
    for (int i=1;i<=N;i++)
        f>>v[i];
    quicksort(1,N);
    for (int i=1;i<=N;i++)
        g<<v[i]<<' ';
    return 0;
}