Бог бесполезной недели
Предыстория такова: тыцк

Взяла пузырьковую для начала, написала просто всё подряд - работает. Выглядит это так: посмотреть

В чём проблема и при чём здесь методы? Если я правильно поняла, то, упрощенно объясняя, привычная по с++ функция аналогично методу в Java. Так вот, мне нужно разбить написанный текст на три метода: тот, который создает и заполняет массив, тот, который выполняет сортировку, и тот, который выводит результат. В с++ всё ясно - объявление, определение, и в int main () последовательный вызов. Первое, что я попыталась сделать на Java - провернуть всё то же самое. Не вышло, конечно)

Вопросы:

Очень прошу в интернет меня не отсылать без крайней необходимости - за последние 6 часов я его перерыла вдоль и поперек, и точного решения не нашла. Лучше в книги. Вот прямо передо мной открыт Шилдт, например.

@темы: Java

Комментарии
08.09.2012 в 22:22

И тесно облакам.
В принципе, всё похоже на c++:



08.09.2012 в 22:26

И тесно облакам.
Массив передается в функцию (и возвращается из нее) очень просто: с помощью аргумента типа массив (т.е. int[]). Надо иметь в виду, что это ссылка на объект. В моем коде метод sort сортирует переданный массив. При желании можно, например, сделать, чтобы функция создавала внутри себя новый массив через "new int[]", записывала туда результат и возвращала этот массив (при этом массив, переданный в качестве аргумента, остался бы без изменения). Оба подхода имеют право на существование.

Выделить сортировку в отдельную функцию целесообразно, разумеется.
08.09.2012 в 22:51

Бог бесполезной недели
Ri, огромнейшее спасибо :ura:

sort должна быть обязательно private и не static?
описание метода должно строго предшествовать его вызову или это скорее хороший тон?
08.09.2012 в 22:57

И тесно облакам.
Должна быть static, это я ошибся. Все методы нужно определять как private, если нет причины делать их public. Если вы планируете использовать эту функцию из других классов, вы вправе сделать ее public. Порядок определения методов не имеет значения.
08.09.2012 в 22:57

149ea694a792f3ad2caaf77077a0df58 Спорящая с богом
Зачем Вам пузырьковая или какая-либо ещё сортировка, если задание - найти максимум? У пузырьковой сортировки сложность - O(n^2), у более продвинутых - O(n*log n), но Вы их вряд ли пока проходили. Поиск максимума - O(n). Вам нужен один проход по циклу, без вложенных и без свопа. Вы запросто так теряете кучу процессорного времени, да ещё и изменяете начальное состояние массива, хотя по заданию это не требовалось. Учитесь внимательно читать задание и не бежать впереди паровоза.
Далее по вопросам.
1. Да. Джава полностью object oriented, нет никаких проблем с вызовом функции-члена из другой функции-члена.
2. Да. В Джаве это даже проще, не надо думатьо разыменовании указателей.
2. Я У Вас вообще никакого дробления не вижу. ИМХО, здесь требуется выделить функцию, которая принимает уже заполненный массив и возвращает индекс наибольшего элемента или его значение - в зависимости от техзадания. Не забудьте проверить массив, что он не null - это ссылочный тип.
08.09.2012 в 23:02

И тесно облакам.
Караидель, как я понял, задание про максимальный элемент не относится к заданию про сортировку.
08.09.2012 в 23:27

Бог бесполезной недели
Ri, до использование в других классах мне ещё как пешком до Парижа) научиться бы пока внутри одного класса.

Караидель, максимальный элемент - это другое, с этим я справилась, а вот лабораторка - это три алгоритма сортировки. Признаться, никогда вообще с этими алгоритмами не сталкивалась (как вобщем и со многими очевидными не новичкам вещами) просто потому, что вообще первый год программировать учусь))
Из сортировок взяла пузырьковую, быструю и вставками - ну приглянулись они мне почему-то. Для меня сейчас не имеет никакого значения эффективность алгоритмов - главной победой станет самостоятельно их реализовать на Джаве, совершенно её не зная. Лабораторную-то как-то сдавать надо, и то ли ещё будет... Думаю, именно с этой целью нас так сразу и огорошили - то, что выудил сам, лучше понимается и запоминается, чем то, что разжевали и в рот положили.

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