创作不易,感谢三连支持!! 一、归并排序 归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide andConquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 还有一个关键点就是:归并一定要先拷贝到一个新数组里面,再拷贝到原数组!! 根据上面的思路,我们来实现代码: void _MergeSort(int* a, int begin, int end, int* temp) { if (begin == end) return;//设置递归返回条件 int mid = (begin + end) / 2; //开始分解 _MergeSort(a, begin, mid, temp);//左区间归并 _MergeSort(a, mid+1, end, temp);//右区间归并 //开始进行总归并 int begin1 = begin, end1 = mid;//设置指针指向左区间 int begin2 = mid +...