合并两个排序的整数数组A和B变成一个新的数组。
注意事项
你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素。
样例
给出 A = [1, 2, 3, empty, empty], B = [4, 5]
注意事项
你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素。
样例
给出 A = [1, 2, 3, empty, empty], B = [4, 5]
合并之后 A 将变成 [1,2,3,4,5]
import java.util.Scanner;
/**
* 合并两个排序的整数数组A和B变成一个新的数组。
注意事项
你可以假设A具有足够的空间(A数组的大小大于或等于m+n)去添加B中的元素。
样例
给出 A = [1, 2, 3, empty, empty], B = [4, 5]
合并之后 A 将变成 [1,2,3,4,5]
*
* @author Dell
*
*/
public class Test64 {
public static void mergeSortedArray(int[] A, int m, int[] B, int n)
{
int[] result=new int[m+n];
int i=0;
int j=0;
int k=0;
while(i<m&&j<n)
{
if(A[i]<B[j])
{
result[k++]=A[i];
i++;
}
else {
result[k++]=B[j];
j++;
}
}
if(i<m)
{
for(int z=i;z<m;z++)
{
result[k++]=A[z];
}
}
if(j<n)
{
for(int z=j;z<n;z++)
{
result[k++]=B[z];
}
}
for(int b=0;b<m+n;b++)
{
A[b]=result[b];
}
}
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int m=sc.nextInt();
int n=sc.nextInt();
int[] A=new int[m+n];
int[] B=new int[n];
for(int i=0;i<m;i++)
{
A[i]=sc.nextInt();
}
for(int i=0;i<n;i++)
{
B[i]=sc.nextInt();
}
mergeSortedArray(A,m,B,n);
for(int i=0;i<m+n;i++)
{
System.out.print(A[i]+" ");
}
}
}