Member 13455134 Ответов: 1

Как объединить и отсортировать 2 списка в числовом порядке?


Итак, я делаю проект, и меня очень смущает вторая часть. Что мне нужно сделать, так это попросить пользователя ввести два списка любой длины (первое введенное целое число-это длина списка, например. Вход: 5 1 2 3 4 5, фактический массив: 1 2 3 4 5.) Сделайте это дважды, затем объедините два списка в один список и отсортируйте значения и отобразите их в числовом порядке. Я так запуталась. Может ли кто-нибудь показать мне, что мне нужно делать, или хотя бы начать? Кроме того, сортировка должна выполняться отдельным методом, который я еще не начал.

Что я уже пробовал:

//Program05.java
//Mac Howard

import java.util.Scanner;

public class Program05 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner input = new Scanner(System.in);
		
		//Variables
		int[] list1;
		int[] list2;		
				
		//Input lists
		System.out.print("Enter list 1 (the first integer entered determines size of the list): ");
		int size1 = input.nextInt();
		list1 = new int[size1];
		for(int i = 0; i < list1.length; i++) {
			list1[i] = input.nextInt();
		}
		System.out.print("Enter list 2 (the first integer entered determines size of the list): ");
		int size2 = input.nextInt();
		list2 = new int[size2];
		for(int i = 0; i < list2.length; i++) {
			list2[i] = input.nextInt();
		}
		//Delete this
		for (int i = 0; i < list1.length; i++) {
			System.out.print( list1[i] + " ");
		}
		for (int i = 0; i < list2.length; i++) {
			System.out.print( list2[i] + " ");
		}
	}
	
	public static int[] merge(int[] list1, int[] list2) {
		
	}

}

1 Ответов

Рейтинг:
0

Richard MacCutchan

Зачем писать один и тот же код дважды? Создайте метод, который считывает числа и возвращает список. Сортировать и объединять довольно просто. Сначала отсортируйте каждый список, затем прочитайте их оба, сравнивая числа и каждый раз печатая наименьшее из двух.


Member 13455134

Это требование проекта для моего класса. Я должен использовать два метода. Вот это описание,
Напишите следующий метод слияния двух отсортированных списков в новый отсортированный список.

публичный статический тип int[] объединения(тип int[] список1, инт[] список2)

Реализуйте этот метод таким образом, чтобы он принимал сравнения list1.length + list2.length. Напишите тестовую программу, которая предложит пользователю ввести два отсортированных списка и отобразит объединенный список. Вот пример запуска. Обратите внимание, что первое число во входных данных указывает на количество элементов в списке.

Введите list1: 5 1 5 16 61 111
Введите list2: 4 2 4 5 6
Объединенный список таков: 1 2 4 5 5 6 16 61 111

Richard MacCutchan

Итак, идите и запишите все на бумаге, подумайте об элементах в каждом списке и о том, что вам нужно сделать, чтобы объединить их. Весь смысл домашнего задания заключается в том, что Вы читаете свои заметки о курсе и думаете о том, что нужно сделать.

Member 13455134

Ну да, я понимаю это и занимаюсь этим уже 6 часов. Вот почему я пришел сюда и обратился к профессионалам. Я просто очень хочу, чтобы это было сделано. Я не спрашиваю ответа, просто подталкиваю в нужном направлении. Я думаю, что мне нужно сделать это, чтобы иметь возможность идентифицировать каждый элемент в каждом списке, сравнить их друг с другом и создать объединенный список соответственно. Но я абсолютно не знаю, как это сделать с точки зрения кода.

Richard MacCutchan

Ну, я уже дважды тебе намекал, но рискую повторить еще раз:
Прочитайте первый пункт каждого списка
В то время как существует больше ценностей:
- Сравните их и выведите наименьшее значение
- Прочитайте следующий пункт из списка, который имел наименьшее значение
Продолжать

Если какой-либо список дойдет до конца, вам просто нужно прочитать и распечатать оставшиеся значения.