Pagini recente » Cod sursa (job #2837379) | Cod sursa (job #656817) | Cod sursa (job #982485) | Cod sursa (job #2455003) | Cod sursa (job #2897974)
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int nh,h[500000],v[500000];
void urca(int p){
while(p>1 && h[p]<h[p/2]){
swap(h[p],h[p/2]);
p/=2;
}
}
void coboara(int p){
int fs=2*p,fd=2*p+1,bun=p;
if(fs<=nh && h[fs]<h[bun]){
bun=fs;
}
if(fd<=nh && h[fd]<h[bun]){
bun=fd;
}
if(bun!=p){
swap(h[bun],h[p]);
coboara(bun);
}
}
void adauga(int val){
h[++nh]=val;
urca(nh);
}
void sterge(int p){
if(p==nh){
nh--;
}
h[p]=h[nh--];
urca(p);
coboara(p);
}
int main()
{
int n,val;
in>>n;
for(int i=0; i<n; i++){
in>>val;
adauga(val);
}
//n=0;
for(int i=0; i<n; i++){
v[i]=h[1];
sterge(1);
}
for(int i=0; i<n; i++){
out<<v[i]<<" ";
}
return 0;
}