空间复杂度原因是因为需要额外数组空间来进行排序
时间复杂度 T(n)=2T(n/2)+O(n),a=2,b=2,c=1根据master公式可知时间复杂度O(nlogN)
归并排序可以排序数据量很大的数组,举例说明,例如要排序有2^64个数字的数组,那么归并排序将会开辟64层系统栈,这并不会导致栈溢出.
include
void merge(int a[],int left,int mid,int right){
int length=right-left+1;//5-0+1;因为有数组零下标的存在,所以要多加一
int temp[length]; //创建一个对应长度的数组
int i=left; //左指针
int j=mid+1; //右指针
int k=0; //记录temp数组的下标指针
//把较小的数移到新temp数组中
while(i<=mid&&j<=right){