Задача по алгоритмам Ӏ Java Syntax: 9 уровень, 11 лекция

  • 12
  • Недоступна
Вместо кубиков жители планеты Линейный Хаос дают своим детям решать задачки на сортировку. Вот вам одна из забавок маленьких упорядоченных изоморфиков, развлекитесь, как следует: после того, как пользователь введет с клавиатуры список слов (и чисел), программа должна вывести слова в возрастающем порядке, а числа — в убывающем.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (525)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Олег Д 15 уровень, Москва
17 октября, 13:37
Лайкаем, у кого в IDE было)) while (reader.ready())
Ilya 11 уровень, Санкт-Петербург
17 октября, 03:50
Товарищи, подскажите, что за оборот? с какой целью и почему у меня вообще ничего с клавиатуры не просит ввести при запуске. Туплю, прошу отнестись с пониманием)) while (reader.ready()) { String s = reader.readLine(); list.add(s); }
Олег Д 15 уровень, Москва
17 октября, 13:39
этот код не сработает перепиши на while (true) {break}
Fregat 26 уровень, Днепр
16 октября, 09:58
Рекомендую прочесть самый популярный комментарий, коротко и просто всё описано, весь код можно уместить в 2 цикла и 4 if'а. Я же сделала код в 40 строк...но приятно, что хоть прошёл валидацию
Roman Pantyukhin 12 уровень, Ижевск
четверг, 05:08
Через коллекции 2 цикла и 2 if-а. В принципе для себя решил, что в этой задаче сделаю не ручной сортировкой, а с помощью готовых методов
Collection.sort(word);
Collection.sort(num);
Collection.reverse(num);
где word - ArrayList<String> num - ArrayList<Integer>
Станислав 14 уровень
15 октября, 13:17
Цикл в Цикл. Задачка интересная, чтобы начать ее решать надо разложить условие по полочкам :) Нам надо разделить значения, отсортировать и поменять в массиве их местами в нужном нам порядке. 1. В начале нам нужно создать Цикл в Цикле. for (int i = 0; i < array.length - 1; i++) - * внешний цикл for (int j = i; j < array.length - 1; j++) - * внутренний цикл т.к. у нас в условии есть разные значения: их надо отсортировать на слова и цифры. 2. Сортировать будем через if() В задании нам приходит array[0] = "12" array[1] = "Перерыв" и т.д. Что делать? Как быть ! :) Делаем "Вилку" , Сначала ловим i , затем ловим j+1 if(если i* цифра) { // i = цифра if(если j+1 цифра){ j+1 = цифра // как поймали второе значение оно у нас в задании под [3] = 18 // колдуем над ним через знакомый нам метод замены значения if (Integer.parseInt(array[j + 1]) > Integer.parseInt(array[i])) // тут пишем метод замены значения } .................... аналогично и со словами } else !если i* не цифра) { // i = слово if(если j+1 не цифра){ // j+1 = слово // колдуем дальше if((isGreaterThan(array[i], array[j + 1])){ // обязательный метод задания учтем пожалуй! // тут пишем метод замены значения} } P.S на весь код оператора if() - 5 шт + 1 else P.S.S кому лень искать способ замены значения String tmp = array[j + 1]; array[j + 1] = array[i]; array[i] = tmp;
Valeria Li 13 уровень, Москва
14 октября, 22:35
Не понимаю зачем превращать arraylist в массив, можно же и arraylist работать спокойно)
aleksdenni ФОП в Дом
12 октября, 12:05
Метод сортировки , получился на 18 строк . Через парсер, перегонял в инт числа , что бы сравнить что больше . Задача не сложная , но подумать заставляет ))
Maxim Belich 18 уровень, Минск
12 октября, 09:22
Самое интересное, что нет комментариев по тому поводу, что мы передаем массив в обычный метод, в этом методе работаем с массивом !и не перезаписывая его, даже не возвращаем ( а он между прочим меняется). Кто-то скажет, что так массив же ссылочный (типа String!) а попробуйте сделать тоже самое с массивом int'ов) Получится тоже самое. Массив является mutable объектом. Я не видел, чтобы про это где-то писалось.
Кибер Котлета 10 уровень, Санкт-Петербург
11 октября, 13:48
Думаешь, что понял с первого раза то, как работает" isGreaterThan "? Подумай обратно или используй "!" :)
Андрей 18 уровень, Grozny
9 октября, 16:10
Среднее количество попыток решения задачи 2.35??? Сомневаюсь, что все самостоятельно ее сделали
Глеб 20 уровень, Киев
7 октября, 23:33
Думал, что isGreaterThan должен определять строку которая длиннее, поэтому не мог понять, что у меня работает не так. А на самом деле там суть в алфавитном порядке.