Pagini recente » Cod sursa (job #2096637) | Cod sursa (job #1634251) | Cod sursa (job #2569859) | Cod sursa (job #995645) | Cod sursa (job #2294338)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
int v [500003], n, f, p;
int main (){
fin >> n;
for (int i = 1; i <= n; i ++) {
fin >> v [i];
p = i / 2;
f = i;
while (p > 0 && v [f] > v [p]) {
swap (v [f], v [p]);
f = p;
p /= 2;
}
}
for (int i = n; i >= 2; i --) {
swap (v [i], v [1]);
p = 1; f = 2 * p;
while (f < i) {
if (f + 1 < i && v [f + 1] > v [f])
f ++;
if (v [p] < v [f])
swap (v [p], v [f]);
else break;
p = f;
f = 2 * p;
}
}
for (int i = 1; i <= n; i ++)
fout << v [i] << " ";
return 0;
}