Pagini recente » Cod sursa (job #322651) | Cod sursa (job #2910123) | Cod sursa (job #971967) | Cod sursa (job #538634) | Cod sursa (job #1831393)
#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]<<' ';
}