#include <stdio.h>#define M 5void 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); //歸併排序前半個子序列 MergeSort(r, r2, r1, m+1, t); //歸併排序後半個子序列 Merge(r2, r1, s, m, t); //將兩個已排序的子序列歸併 }}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++; } } }