Pagini recente » Cod sursa (job #1644194) | Cod sursa (job #2618579) | Cod sursa (job #1002660) | Cod sursa (job #809266) | Cod sursa (job #2123850)
#include<fstream>
int n;
void heapify(int *x, int i) {
int j = i * 2;
if (i * 2 + 1 <= n && x[i * 2 + 1] > x[i * 2])
j = i * 2 + 1;
if (x[i] < x[j]) {
int aux = x[j];
x[j] = x[i];
x[i] = aux;
}
if(j<=n/2) heapify(x, j);
}
int main() {
std::ifstream in("algsort.in");
std::ofstream out("algsort.out");
in >> n;
int *x = new int[n+1];
for (int i = 1;i <= n;++i)
in >> x[i];
for (int i = n / 2;i > 0;--i)
heapify(x, i);
int k = n;
while(n>=1) {
int aux = x[n];
x[n] = x[1];
x[1] = aux;
n--;
heapify(x, 1);
}
for (int i = 1;i <= k;++i)
out << x[i] << " ";
}