一.归并排序
归并排序:将两个或两个以上的有序序列合并为一个有序序列。
总结
归并排序可以理解为归并操作,是一种采用分治法的算法。
分治法:分而治之的思想,就是把一个大问题分解成多个小问题,逐个解决后,再合成最终的答案。
二.源码
/*
归并排序:先拆再合
拆:在start-end之中,找到中间值mid,以中间值为分割点,左边一部分,右边一部分,再递归调用mergeSort函数
合:把左边部分与右边部分进行合并
*/
#include<iostream>
using namespace std;
//第三部分:传5个参数
void merge(int arr[],int start1,int end1,int start2,int end2){
//1.取长度
int n1=end1-start1+1; //左边
int n2=end2-start2+1; //右边
//2.定义2个数组
int arr_left[n1],arr_right[n2];
//3.拷贝
for(int i=0;i<n1;i++){