思路(归并排序)
https://blog.youkuaiyun.com/qq_34028920/article/details/109126288
https://blog.youkuaiyun.com/qq_34028920/article/details/109141142
void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n)
{
//m表示第一个数组的长度,n表示第二个数组的长度
int temp[m+n]; //临时存储的数组
int i,j,k;
i = j = k = 0;
while ( i < m && j < n ){
if ( nums1[i] < nums2[j] ){ //同一位置如果第一个数组小于第二个
temp[k] = nums1[i]; //临时数组记下较小的
k++;
i++;
} else
{
temp[k] = nums2[j];
k++;
j++;
}
}
//已经比较完,剩余的直接排进临时数组
while ( i < m )
{
temp[k] = nums1[i];
i++;
k++;
}
while ( j < n )
{
temp[k] = nums2[j];
j++;
k++;
}
//把最终结果存储回num1
for (i=0;i<n+m;i++) {
nums1[i] = temp[i];
}
}