Pagini recente » Cod sursa (job #678401) | Cod sursa (job #969015) | Cod sursa (job #2222346) | Cod sursa (job #2039293) | Cod sursa (job #1365511)
#include <fstream>
#define N 500005
using namespace std;
ifstream fin ("algsort.in");
ofstream fout ("algsort.out");
int a[N], c[N];
int n;
void interclaseaza (int p, int mid, int u) {
int i = p,
j = mid+1,
k = p-1;
while (i <= u && j <= u)
if (a[i] > a[j])
c[++k] = a[j++];
else
c[++k] = a[i++];
for (;i<=u;i++)
c[++k] = a[i];
for (;j<=u;j++)
c[++k] = a[j];
for (i=p; i<=u; i++)
a[i] = c[i];
}
void sorteaza (int p, int u) {
if (p < u) {
int mid = (p+u)/2;
sorteaza (p, mid);
sorteaza (mid+1, u);
interclaseaza(p, mid, u);
}
}
int i;
int main() {
fin >> n;
for (i=1; i<=n; ++i)
fin >> a[i];
sorteaza (1, n);
for (i=1; i<=n; ++i)
fout << a[i] << " ";
return 0;
}