Задача по алгоритмам

  • 5
  • Недоступна
Вероятно, вы уже знаете упорядоченных изоморфов с планеты Линейный Хаос, которые любят алгоритмы сортировки, поскольку ими думают. Вот вам задачка для изоморфов младшего школьного возраста: введите с клавиатуры 20 слов и выведите их в алфавитном порядке. А как сортировать? Придумайте, вы уже почти что линейный изоморф!
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (101)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Valery9 уровень
позавчера, 18:40
у меня пропустила не зависимо от case букв - пузырьковая сортировка, внутри которой сравниваешь две строки методом isGreaterThen Час потратила, потому что в if не вставила { } )))
Richard Hendricks10 уровень, Екатеринбург
12 февраля, 20:40
ААА!!! Мой мозгх!!! Мне больно !!! ))) В общем isGreaterThan и пузырьковая сортировка сработали (вот хорошая статья (да и вообще ресурс) про сортировку пузырьком: https://vertex-academy.com/tutorials/ru/sortirovka-puzyrkom-v-java/) А задача учит понимать compareTo (http://proglang.su/java/strings-compareto) я думаю, который потом пригодиться когда сортировать объекты надо будет...
Алексей14 уровень, Москва
2 февраля, 20:48
Arrays.sort и не нужно изобретать велосипед. Ну и вызвать этот бессмысленный мусор isGreaterThan("","") чтобы валидация прошла.
Евгений Сергеевич11 уровень, Москва
5 февраля, 08:46
Алексей дело говорит!
Александр Ковалев13 уровень, Москва
23 января, 08:49
Валидатор не захотел принять защиту от ввода в любом регистре, за то считает нормально отсортированным по алфавиту ВВОД: аааа Бааа баа ... ВЫВОД: Бааа аааа баа ...
Roller18 уровень, Новосибирск
10 января, 05:06
"Если задачу решать через обычный Arrays.sort то вообще зачем ее нужно было сюда писать?" В общем с такой мыслью я решил ее через FOR и IF. По крайней мере так интереснее и помогает размять мозг) Да и не пришлось городить стотыщ ифов.
Leo18 уровень, Москва
6 января, 17:42
Объясните кто-нибудь зачем нужен метод isGreaterThan? я так понял этот метод сравнивает длину строк, но в задаче нужно отсортировать по алфавиту, это специально сделано чтобы запутать?
Максим15 уровень, Минск
6 января, 18:12
Нет, это сделано, чтобы мы изучили имеющиеся методы в классе String, одним из которых является: public int compareTo​(String anotherString). Метод сравнивает две строки и возвращает отрицательное значение типа int, если объект класса String (первая строка) предшествует переданному аргументу класса String (вторая строка). Возвращает положительное значение, если объект следует переданному аргументу. Возвращает ноль, если строки равны. Полученные результаты, например, можно использовать при сортировке строк.. Подробнее здесь: https://docs.oracle.com/javase/9/docs/api/java/lang/String.html#compareTo-java.lang.String-
Андрей13 уровень, Новосибирск
31 января, 06:40
Чтобы мы привыкали использовать компараторы?
Serg11 уровень, Днепр
8 февраля, 23:46
я согласен, что метод очень полезный и честь ему и хвала, но нафига он в этой задаче?( с таким подходом давайте сюда запихаем еще кучу бесполезных методов, с понтом учите...пригодится(
Иван17 уровень, Новосибирск
3 января, 09:37
Решил согласно условию задачи, все же в данном случае требуется решение согласно условию, вполне себе простое - согласно алгоритму пузырьковой сортировки. Да, ориентированное на нижний регистр, ну так это и прописано в самой задаче.
S3R3N1TY22 уровень, Санкт-Петербург
24 декабря 2018, 09:59
Метод Arrays.sort можно применить если все слова одинакового регистра, в задаче аналогичный ему по работе compareTo. Но если будем вводить слова и с большой и маленькой буквы, то вверх будут всплывать всегда слова с БОЛЬШОЙ буквы даже на букву "Я". compareToIgnoreCase- такой метод игнорирует регистр. Описание метода с примерами: https://guru99.ru/string-compareto-method-java/
Павел9 уровень, Нижний Новгород
6 февраля, 10:46
попробовал использовать compareToIgnoreCase вместо compareTo, чтобы слова выводились действительно в алфавитном порядке не зависимо от регистра. Результат - валидатор не пропускает решение))
S3R3N1TY22 уровень, Санкт-Петербург
6 февраля, 11:07
Привет) я смотрю в задаче указаны входные данные такие: Москва Абрамовичи Киев Ивановы Лондон ..... То есть все с большой буквы. Посмотрел свою сданную задачу - я использовал
//Метод для сравнения строк: 'а' больше чем 'b'
    public static boolean isGreaterThan(String a, String b) {
        return a.compareTo(b) > 0;}
В своем комменте выше имел ввиду, такой случай может быть, а с валидатором еще предстоит бороться очень много раз)) Держитесь самое интересное и сложное впереди.
Rif17 уровень
10 декабря 2018, 11:40
На глупые условия задачи и решение простое. А мне всегда казалось, что лучше использовать штатные средства сортировки, чем непонятное isGreaterThan
public static void sort(String[] array) {
        Arrays.sort(array);
        isGreaterThan("",""); // лишняя строка для выполнения глупых условий задачи
    }
Антон27 уровень, Нижний Новгород
6 декабря 2018, 20:48
Если ставить любое число вместо 20, то задачка не проходит проверку по последнему пункту. Ну и не сразу понял, как работает String/compairTo(String). Будьте внимательны
vapima10 уровень, Москва
14 февраля, 12:53
Спасибо за это!!! Я сначала поменял на 3 и забыл)) Перепробовал в итоге все методы... а оказалось, опять она, госпожа невнимательность