/**
*
* @param A int整型一维数组
* @param ALen int A数组长度
* @param B int整型一维数组
* @param BLen int B数组长度
* @return void
*/
/*********************NC22-合并两个有序的数组**********************************
* 题目给出的是整数数组A和有序整数数组B,将数组B合并到数组A中,变成一个有序的升序数组
* 注意1、数组A又足够的空间存放数组B中的元素,A和B初始数组元素数目分别为m和n,A数组大小为m+n
* 注意2、数组A在[0,m-1]也是有序的
* 注意3、不要返回合并的数组,将数组B的元素合并到数组A就好了
****************************************************************************/
void merge(int* A, int ALen, int m, int* B, int BLen, int n) {
// write code here
int nums[m+n];
int i=0, j=0, cnt=0;
//数组A又m和元素,数组B有n个元素,将合并后的数组先放入nums中,nums数组大小为m+n
while(i < m && j < n)
{
if(A[i] < B[j])
nums[cnt++] = A[i++];
else
nums[cnt++] = B[j++];
}
while(i < m)
nums[cnt++] = A[i++];
while(j < n)
nums[cnt++] = B[j++];
//将nums数组元素拷贝到数组A中
for(i = 0; i < m+n; i++)
A[i] = nums[i];
}