Pagini recente » Cod sursa (job #1840200) | Cod sursa (job #2468626) | Cod sursa (job #2743551) | Cod sursa (job #1799925) | Cod sursa (job #2075729)
#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();
}