Pagini recente » Cod sursa (job #1153560) | Cod sursa (job #1737836) | Cod sursa (job #2416170) | Cod sursa (job #1372041) | Cod sursa (job #1679738)
# include <fstream>
# define DIM 500010
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[DIM],n,i,k,x;
void add (int x){
v[++k]=x;
int c=k,p=k/2;
while(p!=0){
if(v[p]>v[c]){
swap(v[p],v[c]);
c=p;
p=c/2;
}
else
break;
}
}
void off (){
v[1]=v[k--];
int p=1,c=2;
while(c<=k){
if(c+1<=k&&v[c]>v[c+1])
c++;
if(v[p]>v[c]){
swap(v[p],v[c]);
p=c;
c*=2;
}
else
break;
}
}
int main () {
fin>>n;
for(i=1;i<=n;i++){
fin>>x;
add(x);
}
for(i=1;i<=n;i++){
fout<<v[1]<<" ";
off();
}
fout<<"\n";
return 0;
}