Pagini recente » Cod sursa (job #2114591) | Cod sursa (job #1402597) | Cod sursa (job #897184) | Cod sursa (job #2530891) | Cod sursa (job #2483739)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
long long n,i,v[500010], l, x;
void up(int p){
if ( p > 1 && v[p]<v[p/2])
{
swap (v[p],v[p/2]);
up(p/2);
}
}
void down(int p)
{
if (2*p+1<=l)
{
if (v[2*p]<v[2*p+1] && v[2*p]<v[p])
{
swap (v[2*p],v[p]);
down(2*p);
}
else if (v[2*p+1]<v[p])
{
swap(v[2*p+1],v[p]);
down(2*p+1);
}
}
else if (2*p<=l && v[2*p]<v[p])
{
swap(v[p],v[2*p]);
down(2*p);
}
}
void add (int x)
{
l++;
v[l]=x;
up(l);
}
int main()
{ f >> n;
for ( i = 1; i <= n; i++ ){
f >> x;
add(x);
}
for (i=1;i<=l;i++)
g<<v[i]<<" ";
return 0;
}