Cod sursa(job #1799043)

Utilizator GeorgeCalinPetruta George-Calin GeorgeCalin Data 5 noiembrie 2016 18:21:15
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>
using namespace std;
int con,aux,o,n,x;
int v[500001];
ifstream fin("algsort.in");
ofstream fout("algsort.out");

void adaug(int x)
{
    con++;
    int m=con;
    v[m]=x;
    while(v[m/2]>v[m]&&m/2!=0)
    {
        aux=v[m/2];
        v[m/2]=v[m];
        v[m]=aux;
        m=m/2;
    }
}

void elim(int x)
{
    fout<<v[1]<<" ";
    v[1]=v[con];
    o=1;
    while((v[o]>v[o*2+1]||v[o]>v[o*2])&&o*2<=con)
    {
        if(v[o*2+1]<v[o*2])
        {
            aux=v[o*2+1];
            v[o*2+1]=v[o];
            v[o]=aux;
            o=o*2+1;
        }
        else
        {
            aux=v[o*2];
            v[o*2]=v[o];
            v[o]=aux;
            o=o*2;
        }
    }
    con--;
}

int main()
{
    fin>>n;
    for(int i=1;i<=n;i++)
    {
        fin>>x;
        adaug(x);
    }
    for(int i=1;i<=n;i++)
    {
        elim(x);
    }
    return 0;
}