Cod sursa(job #2064457)

Utilizator TavinciStefanescu Octavian Tavinci Data 12 noiembrie 2017 13:19:56
Problema Sortare prin comparare Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include <fstream>

using namespace std;

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

int v[500005];
    void rec(int st,int dr)
    {
        if(st==dr)
        {
            return;
        }
        else
        {
            int pozP=(st+dr)/2;
            swap(v[pozP],v[st]);
            pozP=st;
            for(int i=st+1;i<=dr;i++)
            {
                if(v[i]<v[pozP])
                {
                        swap(v[pozP+1],v[i]);
                        swap(v[pozP],v[pozP+1]);
                    pozP++;
                }
            }
            if(st<pozP-1)
            rec(st,pozP-1);
            if(pozP+1<dr)
            rec(pozP+1,dr);
        }
    }

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