Pagini recente » Cod sursa (job #1731578) | Cod sursa (job #1231917) | Cod sursa (job #1740487) | Cod sursa (job #2830251) | Cod sursa (job #1448346)
#include <cstdio>
const int lmn = 100003;
int a[lmn], b[lmn], c[lmn];
void msort (int l, int r){
int m = (l + r) >> 1;
if (l == r) return;
int i, j, k;
msort(l, m);
msort(m + 1, r);
for (i = k = l, j = m + 1; i <= m && j <= r; ){
if (a[i] < a[j])
b[k++] = a[i++];
else b[k++] = a[j++];
}
for (; i <= m; i++)
b[k++] = a[i];
for (; j <= r; j++)
b[k++] = a[j];
for (k = l ; k <= r; k++)
a[k] = b[k];
}
int main(){
freopen ("algsort.in", "r", stdin);
freopen ("algsort.out", "w", stdout);
int n;
scanf ("%d", &n);
for (int i = 0; i < n; i++)
scanf ("%d", &a[i]);
msort(0, n - 1);
for (int i = 0; i < n; i++)
printf ("%d ", a[i]);
return 0;
}