Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.05.2009, 20:14   #1
PavelZet
Пользователь
 
Регистрация: 07.05.2009
Сообщений: 15
По умолчанию Найти 3-ий по величине элемент массива..

Помогите рационально решить задачку(не сортировкой),желательно на Java
PavelZet вне форума Ответить с цитированием
Старый 07.05.2009, 20:17   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Нужен массив индексов уже отобранных элементов.
max = 0 (считаем максимумом нулевой элемент массива).
Дальше проходим по массиву. Если M[i]>M[max], то max = i.
При этом нужно проверять, не равно ли i какому-нибудь значению из массива индексов. Если равно, то пропускаем его. Если нет, то заносим его туда.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 07.05.2009, 20:29   #3
PavelZet
Пользователь
 
Регистрация: 07.05.2009
Сообщений: 15
По умолчанию

А можно чуть поподробнее,как мы определяем 2-ий и 3-ий мах?
PavelZet вне форума Ответить с цитированием
Старый 07.05.2009, 20:33   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
А можно чуть поподробнее,как мы определяем 2-ий и 3-ий мах?
Также. Какой по счету максимум нужен, столько и будет проходов по массиву.
То есть после 2-х проходов в массиве индексов будут 2 значения - индексы 2-х максимумов. И вот на 3-м проходе мы найдем индекс 3-го максимума.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 07.05.2009, 20:46   #5
PavelZet
Пользователь
 
Регистрация: 07.05.2009
Сообщений: 15
По умолчанию

я имею ввиду,с чем мы сравниваем текущий элемент при проходе > 1?
PavelZet вне форума Ответить с цитированием
Старый 07.05.2009, 20:50   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

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

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 07.05.2009, 20:51   #7
PavelZet
Пользователь
 
Регистрация: 07.05.2009
Сообщений: 15
По умолчанию

т.е. используя то же тело цикла-не получится,мы сравниваем с M[max] наибольшим,а искомый-меньше наибольшего,но больше всех остальных
PavelZet вне форума Ответить с цитированием
Старый 07.05.2009, 20:52   #8
PavelZet
Пользователь
 
Регистрация: 07.05.2009
Сообщений: 15
По умолчанию

Всё понял,спасибо
PavelZet вне форума Ответить с цитированием
Старый 07.05.2009, 20:54   #9
Gongled
Пользователь
 
Регистрация: 17.02.2009
Сообщений: 78
По умолчанию

Возможный вариант. В программе есть отрывок поиска трёх минимумов за один цикл. Эффективно ли?

UPD: Если использовать этот вариант, то стоит использовать совет Serge_Bliznykov
Пишу глупости.

Последний раз редактировалось Gongled; 07.05.2009 в 20:57.
Gongled вне форума Ответить с цитированием
Старый 07.05.2009, 21:01   #10
PavelZet
Пользователь
 
Регистрация: 07.05.2009
Сообщений: 15
По умолчанию

ещё такой вопрос,для определения есть ли индекс в доп массиве обязателен ли for?
Если я правильно понимаю,то нужен цикл с тремя проходами для каждого мах,в нём цикл по всему массиву,а в нём для поиска i в доп массиве..громоздко,тогда наверное легче сортировкой(но не красивее)
PavelZet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти наименьший элемент и его номер в заданной таблице tim777777 Помощь студентам 1 02.03.2009 15:12
Максимальный элемент массива j_Q Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 04.11.2008 22:48
В каждой строке массива выбирается максимальный элемент sergeyfsd Общие вопросы Delphi 2 13.05.2008 00:10
найти минимальный элемент в каждой строке матрицы и записать все минимальные элементы в отдельный массив W_P Помощь студентам 6 28.12.2007 00:24