Cod sursa(job #2067755)

Utilizator DdariusDarius Ddarius Data 16 noiembrie 2017 20:13:35
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int i, n, v[200];

void abracadabra(int st, int dr)
{
    if(st>=dr)
        return;
    int m=(dr+st)/2;
    for(int i=st; i<=dr; i++)
    {
        if(v[m]<v[i]&&m>i)
        {
            swap(v[m], v[i]);
            m=i;
        }
        if(v[m]>v[i]&&m<i)
        {
            swap(v[m], v[i]);
            m++;
            swap(v[m], v[i]);
        }
    }
    abracadabra(m+1, dr);
    abracadabra(st, m);
}


int main()
{
    cin>>n;
    for(i=1; i<=n; i++)
    {
        cin>>v[i];
    }
    srand(time(NULL));
    abracadabra(1, n);
    cout<<endl;
    for(i=1; i<=n; i++)
    {
        cout<<v[i]<<' ';
    }
    return 0;
}