Cod sursa(job #2217692)

Utilizator Mihaibv13Mihai Stoian Mihaibv13 Data 1 iulie 2018 15:37:43
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
using namespace std;

void wap(int &a,int &b)
{
    int aux;
    aux = a;
    a=b;
    b=aux;
}
int main()
{
    int h[100],n,i,x,v[100],k=0;
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    cin>>n;

    cin>>h[1];
    for(i=2; i<=n; i++)
    {algsort.in
        cin>>h[i];
        int nc=i;
        while(h[nc]<h[nc/2] && nc/2>0) { wap(h[nc],h[nc/2]); nc=nc/2; }
    }

    while(n)
    {
   v[++k]=h[1];
     h[1]=h[n];
     n--;
     int nc=1,fisu,ifisu;
     while(1)
     {
       if(h[2*nc]<h[2*nc+1]) fisu=h[2*nc],ifisu=2*nc; else fisu=h[2*nc+1],ifisu=2*nc+1;
       if(fisu > h[nc] || ifisu>n ) break;
       wap(h[ifisu],h[nc]); nc=ifisu;

     }

    }






    for(i=1;i<=k;i++)
        cout<<v[i]<<" ";


    return 0;
}