Cod sursa(job #1831393)

Utilizator GeoeyMexicanuBadita George GeoeyMexicanu Data 17 decembrie 2016 23:06:51
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");

long long* a;
int n,i,j,m,k,t,p;

void heapify(long long* a,int n,int i)
{
    int largest=i;
    int l=2*i;
    int r=2*i+1;
    if(l<n && a[l]>a[largest])
        largest=l;
    if(r<n && a[r]>a[largest])
        largest=r;
    if(largest!=i)
    {
        swap(a[i],a[largest]);
        heapify(a,n,largest);
    }
}
void heapSort(long long* a,int n)
{
    for(int i=n/2;i>=1;i--)
    heapify(a,n,i);
    for(int i=n;i>=1;i--)
    {
        swap(a[1],a[i]);
        heapify(a,i,1);
    }
}
int main()
{
    f>>n;
    a=new long long[n+5];
    for(i=1;i<=n;i++)
        f>>a[i];
    heapSort(a,n);
    for(i=1;i<=n;i++)
        g<<a[i]<<' ';
}