这是递归的基准条件。...memcpy(a+begin, tmp + begin, sizeof(int) * (end - begin + 1));
}
非递归版本
非递归版本的归并排序的思想和递归版本是一致的,都是采用分治的思想...fail");
return;
}
//tmp数组初始化
memset(tmp, '0', sizeof(int) * n);
这段代码申请了一个大小为 n 的临时数组 tmp。...{
tmp[i++] = a[begin2++];
}
memcpy(a + j, tmp + j, sizeof(int) * (end2-j+1));
}
这段代码是内部循环...为什么还要处理越界问题
当数组的数组数据不够合并时,而且越界合并一些不属于的空间,因此:会导致归并越界问题:
int arr[] = { 6,1,2,7,9,3,4,5,10,8 };
if (