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.
#include<iostream>
using namespace std;
class Solution {
public:
void merge(int A[], int m, int B[], int n) {
if(m<1 && n<1)
return;
int length = m+n;
while (m>0 && n>0)
{
if(A[m-1]>B[n-1])
{
A[m+n-1] = A[m-1];
--m;
}else
{
A[m+n-1] = B[n-1];
--n;
}
}
while (m>0)
{
A[m+n-1] = A[m-1];
--m;
}
while (n>0)
{
A[m+n-1] = B[n-1];
--n;
}
}
};
int main()
{
int A[5]={1,3,5,6,9};
int B[3]={2,4,8};
Solution *solution = new Solution;
solution->merge(A,4,B,0);
getchar();
getchar();
return 0;
}