Cod sursa(job #2075729)

Utilizator daniela12Sandu Daniela Teodora daniela12 Data 25 noiembrie 2017 17:11:41
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int n, v[5000005];
void heapify(int a[], int &n, int i)
{
    int mx=i, l=2*i + 1, r=2*i+2;
    if (l<n && a[l]>a[mx])
        mx=l;
    if (r<n && a[r]>a[mx])
        mx=r;
    if (mx!=i)
    {
        swap(a[i], a[mx]);
        heapify(a, n, mx);
    }
}
void heapSort(int a[], int &n)
{
    for (int i=n/2-1;i>=0;i--)
        heapify(a, n, i);
    for (int i=n-1;i>=0;i--)
    {
        swap(a[0], a[i]);
        heapify(a, i, 0);
    }
}
void afisare(int a[], int &n)
{
    for (int i=0; i<n; ++i)
        cout << a[i] << " ";
    cout << "\n";
}
int main()
{   cout<<n;
    f>>n;
    for(int i=0;i<n;++i)   f>>v[i];
    f.close();
    heapSort(v,n);
    for(int i=0;i<n;i++)
        g<<v[i]<<" ";
    g.close();
}