# Include <stdio. h> # define M 5 void mergesort (int r [], int R1 [], int R2 [], int S, int T); void merge (int r [], int R1 [], int S, int M, int T); int main () {int I; int R [m]; int R1 [m]; int R2 [m]; for (I = 0; I <m; I ++) {scanf ("% d", & R [I]);} mergesort (r, r1, R2, 0, M-1); for (I = 0; I <m; I ++) {printf ("% d/N", R1 [I]);} return 0;} void mergesort (int r [], int R1 [], int R2 [], int S, int t) {If (S = T) {R1 [s] = R [s];} else {int m; M = (S + T)/2; mergesort (R, R2, R1, S, M ); // merge and sort the First Half of the sub-sequence mergesort (R, R2, R1, m + 1, t); // merge and sort the second half of the sub-sequence Merge (R2, R1, S, m, t); // merge two sorted subsequences} void merge (int r [], int R1 [], int S, int M, int T) {int I; Int J; int K; I = s; j = m + 1; k = s; while (I <= M & J <= T) {If (R [I] <= R [J]) {R1 [k] = R [I]; k ++; I ++ ;} else {R1 [k] = R [J]; k ++; j ++ ;}} if (I <= m) {While (I <= m) {R1 [k] = R [I]; k ++; I ++ ;}} else {While (j <= T) {R1 [k] = R [J]; k ++; j ++ ;}}}