Pagini recente » Cod sursa (job #2040545) | Cod sursa (job #1288814) | Cod sursa (job #284091) | Cod sursa (job #1723462) | Cod sursa (job #2912218)
#include <fstream>
using namespace std;
ifstream cin("algsort.in");
ofstream cout("algsort.out");
int i, j, n, m, c, p, v[500005];
int main() {
cin>>n;
for(i=1;i<=n;i++){
cin>>v[i];
}
for(i=2;i<=n;i++){
j=i;
while(j>1 && v[j]>v[j/2]){
swap(v[j], v[j/2]);
j/=2;
}
}
for(i=n;i>=2;i--){
swap(v[i], v[1]);
p=1;
c=2;
while(c<=i-1){
if(c+1<=i-1 && v[c+1]>v[c])
c++;
if(v[c]>v[p])
swap(v[c], v[p]);
else
break;
p=c;
c=2*p;
}
}
for(i=1;i<=n;i++)
cout<<v[i]<<" ";
}