Числа по возрастанию

  • 10
  • Недоступна
Возможно, вы уже слышали об упорядоченных изоморфах с планеты Линейный Хаос — изобретателях всех методов сортировки. Сегодня нужно решить задачу от них: пользователь вводит с клавиатуры 5 чисел, метод сортирует числа по возрастанию, а другой метод — выводит их на экран. Осилите? Если да, возможно, вам следует посетить Линейный Хаос!
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (352)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Василий 7 уровень
20 января, 15:26
1) Делаем ввод 5 переменных с клавиатуры:
int a = Integer.parseInt(reader.readLine());
и т. д. 2) Создаём список:
ArrayList<Integer> myList = new ArrayList<Integer>(4);
3) Через
myList.add(a);
передаём списку первое введённое число и т. д.; 4) С помощью
Collections.sort(myList);
сортируем наш список. Только если работаем не в Intellij IDEA то добавьте строку в импорт:
import java.util.Collections;
5) Создаём новые переменные и каждой переменной присваиваем отдельный элемент списка, по порядку от нулевого до четвертого элемента:
int f = myList.get(0);
6) Каждую переменную выводим через отдельный
System.out.println
Dolivo Serg 7 уровень, Харьков
19 января, 20:48
public class Solution { public static void main(String[] args) throws Exception { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int[] list = new int[5]; //массив для заполнения с клавиатуры int[] sort = new int[5]; //массив для переноса значений из int[] list по возрастанию. //заполнение массива с клавиатуры for (int i = 0; i < list.length; i++) { list[i] = Integer.parseInt(reader.readLine()); } //переменная "сумма" понадобится для приравнивания к ней минимального элемента массива //т.е. после сортировки и дублирования в итоговый массив int sum = 0; for (int i = 0; i < list.length; i++) sum += list[i]; int min = list[0]; for(int x = 0; x < list.length; x++) { //цикл для поиска минимального значения for (int i = 0; i < list.length; i++) { if (list[i] < min) min = list[i]; } //поочередно заполняем ячейки отсортированного массива sort[x] = min; //цикл для поиска ячейки, которая оказалась минимальной for (int h = 0; h < list.length; h++) { if (list[h] == min) { list[h] = sum; //присваиваем ей значение суммы, что исключит //данную ячейку при оставшихся сортировках //(не смог исключить ячейку другим способом) min = sum; } } } for (int i = 0; i < sort.length; i++) { System.out.println(sort[i]); } } } Все работает но увы ... помогите довести сие творение до ума
Василий 7 уровень
20 января, 15:09
Попробуйте решить с помощью Collections.sort (Имя_вашего_списка) Только не забудьте по импорт. А именно вставить строку import java.util.Collections; Данный метод сортирует в алфавитном порядке по возрастанию список. Вам только останется создать новые переменные (не те, которые вы использовали для ввода с клавиатуры), присвоить им значение каждого элемента в списке по порядку и каждый элемент вывести на экран через отдельную команду System.out.println, так как проверка задачи этого требует валидатор.
Dolivo Serg 7 уровень, Харьков
20 января, 18:13
я не прошу предложить мне другие реализации, спрашиваю почему не проходит валидацию...
oneDollarGourmet 7 уровень
17 января, 20:02
мне помогло, поможет и вам Сортировка выбором и другие способы и алгоритмы я сделал через сортировку выбора, но Arrays.sort быстрее и легче
Станислав 7 уровень, Санкт-Петербург
11 января, 21:48
Решил сделать счетчик, как только он достигает очередного введенного значения оно выводится на экран. Условия выполнить удалось, но валидатор не принимает. Хоть и распределяются числа по возрастанию, валидатор ругается. Плюс, конечно, понимаю, что будь 100 чисел, такой способ не подошел бы.
Gaziz 10 уровень, Уфа
9 января, 07:39
Решил кувалдой. пузырь в форе с пятью ифами.👨‍🔧 Я за простоту.👨‍💻👨‍💻👨‍💻👨‍🔧👨‍🔧 Землю крестьянам, заводы рабочим, а нам? А нам простые решения. Даешь кувалду! 9 задача я пошел отдыхать. А сколько задач решаешь ты за день? Пиши в комментах))
Александр Огарков 10 уровень, Москва
9 января, 02:49
Сначала нагуглил метод Collections.sort() и решил с помощью него, потом изучил правильное решение к задаче от JavaRush (пузырьковую сортировку), затем полез сюда, добавил пару ссылок на статьи по алгоритмам в закладки, для утреннего чтива. Сейчас в популярных увидел извращения людей над задачей через Math и if/else и не сдержался)
shean 10 уровень
16 декабря 2020, 09:46
Решил через sort, но если по лекциям придумал такой вариант: boolean change(a,b){return a >= b}; for(4 прогона){ if(change(1,2)){пузырь}; if(change(2,3)){пузырь};if(change(3,4)){пузырь};if(change(4,5)){пузырь};} Лайк, если помог кому)
Viktor Balobanov 9 уровень, Ижевск
13 декабря 2020, 08:45
Конечно можно через sort(), но гораздо интереснее через пузырьковую сортировку. Рекомендую. До этого задания не знал как работает bubble sort. Тем более это спрашивают на собесах. И если на просьбу написать алгоритм по сортировке массива, вы будете писать sort(), вас посчитают не очень умным)
Dmitry Sokolov 9 уровень, Казань
7 декабря 2020, 12:09
1. инициализируем массив из 5 элементов 2. через цикл заполняем 5 раз его числами, считанными из клавиатуры 3. сортируем методом Arrays.sort(); 4. циклом выводим каждый элемент уже отсортированного массива по порядку
Сергей Анферов System Engineer в Российские железные
6 декабря 2020, 14:00
Т.к. особых условий не оговорено, кроме того что числа не должны меняться, то решил через создание копии 5 чисел (основные n1 ... n5, копия a1 ... a5). Копию отсортировал в цикле for (для 4 сравнений). Потом с помощью условий сравнил новый список с исходным и выводил при совпадении. Топорно, большие издержки при увеличении количества чисел. Но сделано при помощи тех лекций, которые уже прошли. Решил с третьей попытки из-за последнего условия