Pagini recente » Cod sursa (job #1346772) | Cod sursa (job #2055997) | Cod sursa (job #1810868) | Cod sursa (job #2671206) | Cod sursa (job #1383519)
#include<fstream>
using namespace std;
int n, i, c, p, aux;
int v[500002];
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int main(){
fin>> n;
for(i = 1; i <= n; i++){
fin>> v[i];
}
for(i = 1; i <= n; i++){
c = i;
p = i / 2;
while(p > 0){
if(v[c] > v[p]){
aux = v[c];
v[c] = v[p];
v[p] = aux;
c = p;
p = c / 2;
}
else{
break;
}
}
}
for(i = n; i > 1; i--){
aux = v[1];
v[1] = v[i];
v[i] = aux;
c = 2;
p = 1;
while(c < i){
if(c + 1 < i && v[c+1] > v[c]){
c++;
}
if(v[c] > v[p]){
aux = v[c];
v[c] = v[p];
v[p] = aux;
p = c;
c = p * 2;
}
else{
break;
}
}
}
for(i = 1; i <= n; i++){
fout<< v[i] <<" ";
}
return 0;
}