|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.05.2009, 20:14 | #1 |
Пользователь
Регистрация: 07.05.2009
Сообщений: 15
|
Найти 3-ий по величине элемент массива..
Помогите рационально решить задачку(не сортировкой),желательно на Java
|
07.05.2009, 20:17 | #2 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Нужен массив индексов уже отобранных элементов.
max = 0 (считаем максимумом нулевой элемент массива). Дальше проходим по массиву. Если M[i]>M[max], то max = i. При этом нужно проверять, не равно ли i какому-нибудь значению из массива индексов. Если равно, то пропускаем его. Если нет, то заносим его туда.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
07.05.2009, 20:29 | #3 |
Пользователь
Регистрация: 07.05.2009
Сообщений: 15
|
А можно чуть поподробнее,как мы определяем 2-ий и 3-ий мах?
|
07.05.2009, 20:33 | #4 | |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Цитата:
То есть после 2-х проходов в массиве индексов будут 2 значения - индексы 2-х максимумов. И вот на 3-м проходе мы найдем индекс 3-го максимума.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
|
07.05.2009, 20:46 | #5 |
Пользователь
Регистрация: 07.05.2009
Сообщений: 15
|
я имею ввиду,с чем мы сравниваем текущий элемент при проходе > 1?
|
07.05.2009, 20:50 | #6 |
В тени
Старожил
Регистрация: 19.12.2008
Сообщений: 5,788
|
Вначале каждого прохода нужно присвоить максимуму индекс первого элемента массива. Если этот индекс присутствует в массиве индексов, то берем следующий.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем. ___________________________________ ___________________________________ _______ [=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль] |
07.05.2009, 20:51 | #7 |
Пользователь
Регистрация: 07.05.2009
Сообщений: 15
|
т.е. используя то же тело цикла-не получится,мы сравниваем с M[max] наибольшим,а искомый-меньше наибольшего,но больше всех остальных
|
07.05.2009, 20:52 | #8 |
Пользователь
Регистрация: 07.05.2009
Сообщений: 15
|
Всё понял,спасибо
|
07.05.2009, 20:54 | #9 |
Пользователь
Регистрация: 17.02.2009
Сообщений: 78
|
Возможный вариант. В программе есть отрывок поиска трёх минимумов за один цикл. Эффективно ли?
UPD: Если использовать этот вариант, то стоит использовать совет Serge_Bliznykov
Пишу глупости.
Последний раз редактировалось Gongled; 07.05.2009 в 20:57. |
07.05.2009, 21:01 | #10 |
Пользователь
Регистрация: 07.05.2009
Сообщений: 15
|
ещё такой вопрос,для определения есть ли индекс в доп массиве обязателен ли for?
Если я правильно понимаю,то нужен цикл с тремя проходами для каждого мах,в нём цикл по всему массиву,а в нём для поиска i в доп массиве..громоздко,тогда наверное легче сортировкой(но не красивее) |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
найти наименьший элемент и его номер в заданной таблице | 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 |