Cod sursa(job #2498116)

Utilizator Bogdan_BuzatuBuzatu Bogdan Mihai Bogdan_Buzatu Data 23 noiembrie 2019 15:15:07
Problema Sortare prin comparare Scor 100
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,v[500200],tata,copil;
int main(){
    fin>>n;
    for(int i=1;i<=n;i++){
         fin>>v[i];

    }

    for(int i=2;i<=n;i++){
        copil=i;
        tata=copil/2;
        while(tata>=1){
            if(v[copil]>v[tata]){
                swap(v[copil],v[tata]);
            }
            else{
                break;
            }
            copil=tata;
             tata=tata/2;
        }

    }




    for(int i=n;i>=2;i--){
        swap(v[1],v[i]);

        tata=1;
        copil=2;

        while(copil<i){
            if(copil+1<i && v[copil+1]>v[copil]){
                copil++;
            }
            if(v[copil]>v[tata]){
                swap(v[copil],v[tata]);
            }
            else{
                break;
            }
            tata=copil;
            copil=2*copil;


        }

    }
     for(int i=1;i<=n;i++){
        fout<<v[i]<<" ";
    }











}