Pagini recente » Cod sursa (job #2975260) | Cod sursa (job #3197610) | Cod sursa (job #608382) | Cod sursa (job #423209) | Cod sursa (job #2195911)
#include<fstream>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
int v[500005],n;
void heapify(int n,int i)
{
int largest=i,l=2*i,r=2*i+1;
if(l<=n && v[l]>v[largest])
largest=l;
if(r<=n && v[r]>v[largest])
largest=r;
int aux;
if(largest!=i)
{
aux=v[i]; v[i]=v[largest]; v[largest]=aux;
heapify(n,largest);
}
}
void HeapSort()
{
for(int i=n/2;i>=1;i--)
heapify(n,i);
int aux;
for(int i=n;i>=1;i--)
{
aux=v[1]; v[1]=v[i]; v[i]=aux;
heapify(i-1,1);
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>v[i];
HeapSort();
for(int i=1;i<=n;i++)
cout<<v[i]<<' ';
}