1.归并排序的基本思想
归并排序的基本思想就是把一个数组不断地分成数量尽可能相等的两部分,直至每个部分只包含一个元素。我们再将每两个部分的元素进行排序,然后合成一个部分,再将该部分与上一个他被分隔开的另一部分进行排序,再合成一个部分,不断循环可以使数组完成排序
2.代码实现
我们以从小到大到大给数组归并排序为例:
#include<stdio.h>
#include<iostream>
#include<string.h>
using namespace std;
const int N = 1000010;
int q[N], temp[N];//q为原数组,temp是临时数组存储每个被临时排好的部分
void merge_sort(int q[], int left, int right) {
//此时表示数组已经被分割成单个元素一个部分了,这样我们就不再进行递归分