给出两个按非递减顺序排列的整数数组,num1和num2,另有两个整数m和n,分别表示num1和num2的元素数目,合并num2到num1中,并按非递减顺序排列
解法一
开辟一块新的空间,把数据依次遍历比较之后放入新的空间,最后一次性把数据放回原数组中
void merge(int* num1, int num1Size, int m, int* num2, int num2Size, int n)
{
assert(num1 != NULL && num2 != NULL);
int* newdata = (int*)malloc(sizeof(int) * (m + n));
if (NULL == newdata)
{
exit(1);
}
int i = 0, j = 0;//i:num1 j:num2
int k = 0;
while (i < m && j < n)
{
newdata[k++] = num1[i] <= num2[j] ? num1[i++] : num2[j++];
}
while (i < m)newdata[k++] = num1[i++];
while (j < n)newdata[k++] = num2[j++];
for (i = 0; i < m + n; i++)
{<