Pagini recente » Cod sursa (job #410409) | Cod sursa (job #2335651) | Cod sursa (job #607197) | Cod sursa (job #190594) | Cod sursa (job #380501)
Cod sursa(job #380501)
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[500001],n,i,maxim,p,t,j;
void combheap(int i, int u){
int s,d;
while(2*i<=u)
{ maxim=a[i];
s=2*i;
d=2*i+1;
if(maxim<a[s])
{ maxim=a[s];
p=s;
}
if(maxim<a[d] && d<=u)
{ maxim=a[d];
p=d;
}
if(maxim!=a[i]){
t=a[i];
a[i]=maxim;
a[p]=t;
i=p;
}
else
break;
}
}
int main(){
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
for(i=n/2;i>0;i--)
combheap(i,n);
i=n;
while(i>1)
{ t=a[1];
a[1]=a[i];
a[i]=t;
i--;
combheap(1,i);
}
for(i=i;i<=n;i++)
g<<a[i]<<" ";
return 0;
}