Pagini recente » Cod sursa (job #436579) | Cod sursa (job #1041951) | Cod sursa (job #2789171) | Cod sursa (job #919689) | Cod sursa (job #1691111)
# include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v[500010],n,i,k,x;
void add (int x){
v[++k]=x;
int c=k,p=k/2;
while(p!=0){
if(v[c]<v[p]){
swap(v[c],v[p]);
c=p;
p/=2;
}
else
break;
}
}
void off(){
v[1]=v[k--];
int p=1,c=2;
while(c<=k){
if(v[c+1]<v[c]&&c+1<=k)
c++;
if(v[c]<v[p]){
swap(v[c],v[p]);
p=c;
c*=2;
}
}
}
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;
}