Pagini recente » Cod sursa (job #525232) | Cod sursa (job #1135016) | Cod sursa (job #2182249) | Cod sursa (job #1355143) | Cod sursa (job #861942)
Cod sursa(job #861942)
#include <iostream>
#include <cstdio>
using namespace std;
#define Nmax 500002
int A[Nmax], B[Nmax];
int n;
void MergeSort(int i, int j){
int mijl = (i + j) / 2;
int i2, j2, k;
if(i == j)
return ;
MergeSort(i, mijl);
MergeSort(mijl + 1, j);
for(i2 = i, j2 = mijl+1, k = i; i2 <= mijl || j2 <= j; )
if(j2 > j || (i2 <= mijl && A[i2] < A[j2]))
B[k++] = A[i2++];
else
B[k++] = A[j2++];
for(k = i; k <= j; k++)
A[k] = B[k];
}
void citire(){
freopen("algsort.in", "r", stdin);
scanf("%d", &n);
for(int i = 1; i <= n; i++)
scanf("%d", &A[i]);
}
void afis(){
freopen("algsort.out", "w", stdout);
for(int i = 1; i <= n; i++)
printf("%d ", A[i]);
}
int main(){
citire();
MergeSort(1,n);
afis();
return 0;
}