Pagini recente » Cod sursa (job #1520485) | Cod sursa (job #551379) | Cod sursa (job #1759979) | Cod sursa (job #1692353) | Cod sursa (job #1799043)
#include <fstream>
using namespace std;
int con,aux,o,n,x;
int v[500001];
ifstream fin("algsort.in");
ofstream fout("algsort.out");
void adaug(int x)
{
con++;
int m=con;
v[m]=x;
while(v[m/2]>v[m]&&m/2!=0)
{
aux=v[m/2];
v[m/2]=v[m];
v[m]=aux;
m=m/2;
}
}
void elim(int x)
{
fout<<v[1]<<" ";
v[1]=v[con];
o=1;
while((v[o]>v[o*2+1]||v[o]>v[o*2])&&o*2<=con)
{
if(v[o*2+1]<v[o*2])
{
aux=v[o*2+1];
v[o*2+1]=v[o];
v[o]=aux;
o=o*2+1;
}
else
{
aux=v[o*2];
v[o*2]=v[o];
v[o]=aux;
o=o*2;
}
}
con--;
}
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
{
fin>>x;
adaug(x);
}
for(int i=1;i<=n;i++)
{
elim(x);
}
return 0;
}