Cod sursa(job #1698411)

Utilizator ANA-MARIA.TIGAUTigau Ana-Maria ANA-MARIA.TIGAU Data 4 mai 2016 13:14:21
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <iostream>
using namespace std;
#include<fstream>
ifstream in("algsort.in");
ofstream out("algsort.out");
void MAX_HEAP(int a[], int i, int n)
{
    int l,r,cmm,loc;
    l=2*i;
    r=(2*i+1);
    if((l<=n)&&a[l]>a[i])
       cmm=l;
    else
       cmm=i;
    if((r<=n)&&(a[r]>a[cmm]))
       cmm=r;
    if(cmm!=i)
    {
         loc=a[i];
         a[i]=a[cmm];
         a[cmm]=loc;
         MAX_HEAP(a, cmm,n);
    }
}
void Con_MAX_HEAP(int a[], int n)
{
    for(int k = n/2; k >= 1; k--)
    {
        MAX_HEAP(a, k, n);
    }
}
void HEAPSORT(int a[], int n)
{

    Con_MAX_HEAP(a,n);
    int i, temp;
    for (i = n; i >= 2; i--)
    {
        temp = a[i];
        a[i] = a[1];
        a[1] = temp;
        MAX_HEAP(a, 1, i - 1);
    }
}

int main()
{
    int n;
    in>>n;
    int a[n];
    for (int i = 1; i <= n; i++)
    {
        in>>a[i];
    }
    HEAPSORT(a, n);
    for (int i = 1; i <= n; i++)
    {
        out<<a[i]<<endl;
    }
    return 0;
}