题目
题目描述与运行示例
**7.31(合并两个有序列表)编写下面的方法,将两个有序列表合并成一个新的有序列表:
public static int[] merge(int[] list1, int[] list2)
只进行list1.length+list2.length次比较来实现该方法,该实现的动画演示参见url(直接点击跳转,博主已经插入超链接,网速非常慢)
编写一个测试程序,输入两个有序列表,显示合并后的列表
注意:输入的第一个数字表示列表中元素的个数,该数字不是列表的一部分
list1 is 1 5 16 61 111
list2 is 2 4 5 6
The merged list is 1 2 4 5 5 6 16 61 111
破题
- 主方法:创建一个int型对象,从控制台获取指定值
- 主方法:声明一个int型数组list1,长度赋值为上面的int型对象
- 主方法:通过循环给数组list1赋值
- 主方法:重复1~3步,给list2赋值
- 主方法:输出list1,以一个元素一个空格输出
- 主方法:输出list2,以一个元素一个空格输出
- 主方法:将list1和list2的长度相加,作为list_sum数组长度(声明)
- 主方法:调用merge方法,传入list1和list2,list_sum接收返回
- 主方法:list_sum以一个元素一个空格输出
- merge方法:谁小谁加到新数组后面,小的元素滚入下一个元素,大的元素不变;一旦有数组比较结束将另一个数组剩下的全部加到新数组中
- merge方法:获取list1和list2长度,分别为length1、length2
- merge方法:声明一个长度为length1+length2的数组
- merge方法:两个数组合并操作
- merge方法:返回新数组
代码
import java.util.Scanner;
public class Test7_31 {
public static void main(String[] args) {
//1. 主方法:创建一个int型对象,从控制台获取指定值
Scanner input = new Scanner(System.in);
System.out.print("Enter list1 size and contents: ");
int length1 = input.nextInt();