Pagini recente » Cod sursa (job #2245795) | Cod sursa (job #3295047) | Cod sursa (job #62139) | Cod sursa (job #2827913) | Cod sursa (job #2494434)
#include <fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int n,v[500200],tata,copil;
int main(){
fin>>n;
for(int i=1;i<=n;i++){
fin>>v[i];
}
for(int i=2;i<=n;i++){
copil=i;
tata=copil/2;
while(tata>=1 && v[copil]>v[tata]){
swap(v[copil],v[tata]);
copil=tata;
tata=tata/2;
}
}
for(int i=n;i>=2;i--){
swap(v[i],v[1]);
tata=1;
copil=2;
while(copil<i && v[copil]>v[tata]){
if(copil+1<=i && v[copil+1]>v[copil]){
copil++;
}
swap(v[copil],v[tata]);
tata=copil;
copil=2*copil;
}
}
for(int i=1;i<=n;i++){
fout<<v[i]<<" ";
}
}