编程题
实现归并排序
### 题目描述
实现归并排序算法。归并排序的介绍如下:
1. 将待排序的线数据不断地切分成若干个部分,直到每个部分只包含一个元素,这时,可以认为只包含一个元素的序列是有序的。
2. 将切分后的数据两两合并,每合并一次,就会产生一个新的且更长的有序序列,重复这一步骤,直到最后只剩下一个序列,这个序列就是排好序的数据。
请编写代码,完成排序,对给定数据进行升序排列。
### 输入描述
输入描述
第一行,数字 $N\ (2 \leq N \leq 100)$,表示待排序的元素个数。
第二行,待排序的元素。
### 输出描述
输出一行,为升序序列。
### 输入输出样例
#### 示例
> 输入
```txt
6
7 1 4 8 5 2
```
> 输出
```txt
1 2 4 5 7 8
```