Pagini recente » Cod sursa (job #2560263) | Cod sursa (job #581953) | Cod sursa (job #1938301) | Cod sursa (job #2689906) | Cod sursa (job #2082876)
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
vector<int> h;
void MaxHeapify(int nod,int n)
{
int Maxim=nod;
if(2*nod<=n && h[2*nod]>h[Maxim]) Maxim=2*nod;
if(2*nod+1<=n && h[2*nod+1]>h[Maxim]) Maxim=2*nod+1;
if(Maxim!=nod)
{
h[Maxim]^=h[nod]^=h[Maxim]^=h[nod];
MaxHeapify(Maxim,n);
}
}
int main()
{
ifstream f("algsort.in");
ofstream g("algsort.out");
int n,i;
f>>n;
h.resize(n+1);
for(int i=1; i<=n; ++i) f>>h[i];
for(int i=n/2; i>=1; --i)
MaxHeapify(i,n);
for(int i=n; i>=2; --i)
{
h[i]^=h[1]^=h[i]^=h[1];
MaxHeapify(1,i-1);
}
for(i=1; i<=n; ++i) g<<h[i]<<' ';
return 0;
}