|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.12.2018, 21:36 | #1 |
Форумчанин
Регистрация: 03.08.2018
Сообщений: 129
|
Поиск двух максимальных элементов массива
Нужно найти два максимальных элемента массива за одно прохождение О(n), и учесть нюанс, когда первый элемент может быть максимальным.
Как решить задачу? Пока такая мысль (рабочая, но не О(n)) Код:
|
19.12.2018, 22:13 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
20.12.2018, 11:21 | #3 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
По-моему, непонятки нет: не спрашивают об индексах макс. элементов, а только величины - макс. и следующий за ним <= макс. В первом случае - 1,1 , во вторм - 100,100.
На Паскале это звучало бы вроде так: Код:
|
09.01.2019, 17:03 | #4 |
Подтвердите свой е-майл
Регистрация: 09.01.2019
Сообщений: 3
|
digitalis, на втором тесте алгоритм завалился, решил переписать на JS, вроде выдержаны все тонкости реализации)
Проще отсортировать массив по возрастанию и вывести 2 последних элемента в отсортированном массиве. Вроде где-то находил алгоритм с одним проходом во время сортировки. Код:
|
09.01.2019, 17:50 | #5 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,550
|
Приведенный пример - видимо, массив был воспринят компилятором как short int - тогда конечно, первое число получилось как бы отрицательным. JS - тут я не копенгаген. Алгоритм работает правильно, никто никуда завалился.
5465465 243 6 76 87878 5465465 87878 Насчет сортировки... Можно, конечно, ехать из Москвы в Тамбов через СПб, но через Рязань, думаю, ближе. Последний раз редактировалось digitalis; 09.01.2019 в 18:20. |
09.01.2019, 17:57 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
В тесте может быть для прикола N=1 )
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
09.01.2019, 20:30 | #7 |
Пользователь
Регистрация: 21.12.2018
Сообщений: 28
|
|
09.01.2019, 20:36 | #8 |
Пользователь
Регистрация: 21.12.2018
Сообщений: 28
|
Однако, вынужден извиниться. Если есть много дополнительной памяти, то все, конечно, возможно. Хотя бы хэш-алгоритмами.
|
10.01.2019, 02:59 | #9 |
Подтвердите свой е-майл
Регистрация: 09.01.2019
Сообщений: 3
|
В JS, как таковых, типов shortint нету, нашел ошибку, JS думал что массив - это string, добавил преобразование в число и все заработало как надо)
После C++ и Delphi на JS прогать не удобно |
10.01.2019, 18:46 | #10 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Код:
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
При однократном просмотре целочисленного массива X найти два максимальных числа Xmax1 и Xmax2 соответственно среди четных и нечетных по значению элементов массива | Anonim123321 | Общие вопросы C/C++ | 11 | 11.12.2017 11:08 |
[Delphi]: Сортировка массива, состоящего из максимальных элементов заданных матриц | hozer | Помощь студентам | 2 | 05.12.2016 23:32 |
C# Массив. Сумма двух элементов массива. | Skipper Ok | Помощь студентам | 3 | 15.09.2014 08:19 |
Определение максимальных элементов массива (С++) | Johnny_Grunge | Помощь студентам | 4 | 21.01.2012 16:28 |
поиск максимальных элементов в массиве | radiokarazinec | Общие вопросы Delphi | 1 | 26.12.2010 12:53 |