题目描述
给出两个有序的整数数组 A和B ,请将数组B 合并到数组 A中,变成一个有序的数组
注意:
可以假设A 数组有足够的空间存放 B数组的元素, A和 B中初始的元素数目分别为 m和Nn
public class Solution {
public void merge(int A[], int m, int B[], int n) {
//数组A中初始化好的index长度
int aInitIndex = m - 1;
//数组B中初始化好的index长度
int bInitIndex = n - 1;
//数组A B加一起的元素个数总长度的index
int abIndex = m + n -1;
//m >= n 即 aIndex >= bIndex的情况
while(aInitIndex>=0 && bInitIndex>=0){
if(A[aInitIndex] > B[bInitIndex]){
//从A、B的数组末尾开始计算比较 当:数组A中的元素 > 数组B中的元素
A[abIndex--] = A[aInitIndex--];
}else{
A[abIndex--] = B[bInitIndex--];
}
}
//m < n 即 aIndex < bIndex的情况
while(bInitIndex>=0){
A[abIndex--] = B[bInitIndex--];
}
}
}