Pagini recente » Cod sursa (job #2218705) | Cod sursa (job #1180163) | Cod sursa (job #1178157) | Cod sursa (job #2827731) | Cod sursa (job #2608461)
#include <bits/stdc++.h>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
void heapify(int *scores, int n, int i)
{
int aux;
int largest = i;
int l = 2*i + 1;
int r = 2*i + 2;\
if (l < n && scores[l] > scores[largest])
largest = l;
if (r < n && scores[r] > scores[largest])
largest = r;
if (largest != i)
{
aux = scores[i];
scores[i] = scores[largest];
scores[largest] = aux;
heapify(scores, n, largest);
}
}
void sortScores(int * scores, int n)
{
int aux;
for (int i = n / 2 - 1; i >= 0; i--)
heapify(scores, n, i);
for (int i = n - 1; i > 0; i--)
{
aux = scores[0];
scores[0] = scores[i];
scores[i] = aux;
heapify(scores, i, 0);
}
for (int i = 0; i < n; i++)
{
g << scores[i] << " ";
}
}
int main()
{
int n;
f >> n;
int *scores = (int *) malloc(n * sizeof(int));
for (int i = 0; i < n; i++)
f >> scores[i];
sortScores(scores, n);
free(scores);
return 0;
}