Merge Sorted Array
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 mand n respectively
这道题目就是从后向前进行比较,然后替换。
特别注意比较外的循环条件,当且仅当有一个数组为0的时候就得退出。后面两个while是把剩余的数据填进去。
class Solution {
public:
void merge(int A[], int m, int B[], int n) {
int num=m+n-1;
int recordA=m-1;
int recordB=n-1;
while(recordA>=0 && recordB>=0)
{
if(B[recordB]>=A[recordA])
{
A[num]=B[recordB];
recordB--;
}
else
{
A[num]=A[recordA];
recordA--;
}
num--;
}
while(recordA>=0)
{
A[num]=A[recordA];
recordA--;
num--;
}
while(recordB>=0)
{
A[num]=B[recordB];
recordB--;
num--;
}
}
};