(本人大学老师出的题目)
有两个整型有序数组,数组a的长度为m,数组b的长度为n,其中m和n都为大于0的整数,m和n的大小关系不确定。合并成一个有序数组,数组c的长度为n+m。
例如数组a={1,5,8,9}b={2,4,9,11,15}合并后为c={1,2,4,5,8,9,9,11,15}。
package work2;
import java.util.Scanner;
import java.util.Arrays;
public class 合并数组 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入数组a的元素个数:");
int i=sc.nextInt();
System.out.println("请输入数组a的元素个数:");
int j=sc.nextInt();
int a[]=new int[i];
int b[]=new int[j];
System.out.println("请输入数组a中的"+i+"个元素的值:");
for(int x=0;x<i;x++){
a[x]=sc.nextInt();
}
System.out.println("请输入数组b中的"+j+"个元素的值:");
for(int x=0;x<j;x++){
b[x]=sc.nextInt();
}
//排序
Arrays.sort(a);
Arrays.sort(b);
System.out.println("你在数组A中输入的值为:" + Arrays.toString(a));
System.out.println("你在数组B中输入的值为:" + Arrays.toString(b));
int c[]=new int[i+j];
System.arraycopy(a, 0, c, 0, a.length);
System.arraycopy(b, 0, c, i, b.length);
Arrays.sort(c);
System.out.println("A与B的数组的元素值行合并,并且进行排序,得到:"+Arrays.toString(c));
}
}
实现图:
(这里有个瑕疵,应改为第二个数组A应改数组B,主要是我懒得重新输入)