Pagini recente » Cod sursa (job #904947) | Cod sursa (job #1500905) | Cod sursa (job #2614430) | Cod sursa (job #1918126) | Cod sursa (job #2237304)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
const int N = 500010;
int n,x[N];
void heap_down(int,int);
int main()
{
f>>n;
for(int i=1;i<=n;i++)
f>>x[i];
for(int i=n/2;i>=1;i--)
heap_down(i,n);
for(int i=n;i>=1;i--)
{
swap(x[1],x[i]);
heap_down(1,i-1);
}
for(int i=1;i<=n;i++)
g<<x[i]<<' ';
return 0;
}
void heap_down(int tata,int lung)
{
int fiu=2*tata;
if(fiu>lung)return;
if(fiu+1<=lung)
if(x[fiu]<x[fiu+1])
fiu++;
if(x[tata]<x[fiu])
{
swap(x[tata],x[fiu]);
heap_down(fiu,lung);
}
}