合并排序数组II

来源:互联网 发布:苹果电脑自带修图软件 编辑:程序博客网 时间:2024/05/05 09:18
合并两个排序的整数数组A和B变成一个新的数组。
 注意事项
你可以假设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]+" ");  }}}


原创粉丝点击