Given two sorted integer arrays A and B, merge B into A as one sorted array.
Note:
You may assume that A has enough space (size that is greater or equal to m + n) to hold additional elements from B. The number of elements initialized in A and B are m andn respectively.
class Solution {
public:
void merge(int A[], int m, int B[], int n)
{
if (m == 0)
for (int i = 0; i < n; i++)
A[i] = B[i];
else
{
int count = n + m - 1;
int i = m - 1, j = n - 1;
int x;
for (x = count; x >= 0 && j >= 0 && i >=0; x-- )
{
if (B[j] >= A[i])
A[x] = B[j--];
else
A[x] = A[i--];
}
if (i < 0)
while(j >= 0)
A[x--] = B[j--];
}
}
};