Cod sursa(job #2277677)

Utilizator radugheoRadu Mihai Gheorghe radugheo Data 6 noiembrie 2018 18:35:07
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
#include <fstream>

using namespace std;

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

int n, i, copil, parinte;
int v[500005];

int main()
{
    fin >> n;
    for (i=1; i<=n; i++){
        fin >> v[i];
    }
    for (i=2; i<=n; i++){
        copil = i;
        parinte = copil/2;
        while (parinte >= 1 && v[parinte] < v[copil]){
            swap (v[parinte], v[copil]);
            copil = parinte;
            parinte = copil/2;
        }
    }
    for (i=1; i<=n; i++){
        swap (v[1], v[i]);
        parinte = 1;
        copil = 2;
        while (copil <= i - 1){
            if (copil + 1 <= i - 1 && v[copil+1] > v[copil]){
                copil++;
            }
            if (v[parinte] < v[copil]){
                swap (v[parinte], v[copil]);
            }
            else{
                break;
            }
            parinte = copil;
            copil = parinte*2;
        }
    }
    for (i=1; i<=n; i++){
        fout << v[i] << " ";
    }
    return 0;
}
//heap sort