Mai intai trebuie sa te autentifici.
Cod sursa(job #1799043)
Utilizator | Data | 5 noiembrie 2016 18:21:15 | |
---|---|---|---|
Problema | Sortare prin comparare | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.93 kb |
#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;
}