Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.
Note:
You may assume that nums1 has enough space (size that is greater or equal to m + n)
to hold additional elements from nums2. The number of elements initialized in nums1 and nums2 are m and n respectively.
void merge(int* nums1, int m, int* nums2, int n)
{
int i=0;
if(m==0&&n!=0)
{
while(i<n)
{
nums1[i]=nums2[i];
i++;
}
return ;
}
if(n==0)
return ;
int *TempArray;
TempArray=(int*)malloc(sizeof(int)*(m+n));
int L=0;
int k1=0,k2=0;
while(k1<m&&k2<n)
{
if(nums1[k1]>=nums2[k2])
{
TempArray[L++]=nums2[k2++];
}
else
{
TempArray[L++]=nums1[k1++];
}
}
if(k1==m)
{
while(k2<n)
{
TempArray[L++]=nums2[k2++];
}
}
if(k2==n)
{
while(k1<m)
{
TempArray[L++]=nums1[k1++];
}
}
for(i=0;i<m+n;i++)
{
nums1[i]=TempArray[i];
}
free(TempArray);
}