https://leetcode.com/problems/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.
就是一般merge sort用到的merge函数,只是这里没有重新分配数组,而是直接复制到A中,注意要从后往前复制,如果从前往后复制,那么A中本来的元素则有可能被覆盖。
另外,在其中一个数组被merge完之后,如果A数组还有值,则不用merge了,因为本来就在A中,如果B数组还有值,则把B数组剩下的值再拷到A中。
注意其中一个数组为空的情况。
代码如下: public void merge(int A[], int m, int B[], int n) {
int location = m+n-1;
m--;
n--;
while(m>=0 && n>=0){
if(A[m]>B[n]){
A[location--] = A[m--];
}
else{
A[location--] = B[n--];
}
}
while(n>=0){
A[location--] = B[n--];
}
}