|
223 / 150 / 79
Регистрация: 14.03.2016
Сообщений: 459
|
|
Оптимальная сортировка для средних массивов03.11.2018, 15:57. Показов 2977. Ответов 55
Метки нет (Все метки)
Доброго, к сожалению не очень шарю в разных методах сортировки, потому хочу спросить, какую сортировку лучше выбрать для массива, длина которого не превышает 500'000 элементов, а содержимое лежит в пределе [0; 500'000].
Если кратко, то
0
|
|
| 03.11.2018, 15:57 | |
|
Ответы с готовыми решениями:
55
функция нахождения среднего из значений средних арифметических для пяти массивов произвольной длины (с комментариями)
Поиск и оптимальная сортировка в datagridview |
|
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
|
|
| 04.11.2018, 16:47 | |
|
0
|
|
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
||
| 04.11.2018, 16:51 | ||
![]() По коду видно же, что это массив std::set. Он отличается от массива тем, что поиск по нему происходит гораздо быстрее: O(logN), а не O(n).
0
|
||
|
223 / 150 / 79
Регистрация: 14.03.2016
Сообщений: 459
|
|
| 04.11.2018, 16:57 [ТС] | |
|
Manowar, вы серьезно? Первая же ссылка в гугле :/
Добавлено через 5 минут New man, ну, все равно, я понимаю, что set, это не простой массив, а, насколько я знаю, структура, построенная на принципе деревьев, тем не менее для полного решения нам нужно ускорить все это дело. И, как я понимаю и как уже было озвучено, выход из этого будет кэширование результатов, однако что нам делать при изменении исходного массива в уже проверенном диапазоне? Пока что приходит на ум только удаление.
0
|
|
|
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
|
|
| 04.11.2018, 17:13 | |
|
0
|
|
|
1719 / 568 / 187
Регистрация: 12.03.2016
Сообщений: 2,169
|
|
| 04.11.2018, 17:35 | |
|
Cortas, извиняюсь, не заметил. Но тема от своего первоначального названия ушла далеко в другую плоскость. Не уже ли так было тяжело сразу дать ссылку на сайт и номер задания когда просили не раз. А задание интересное.
0
|
|
|
223 / 150 / 79
Регистрация: 14.03.2016
Сообщений: 459
|
|
| 04.11.2018, 19:43 [ТС] | |
|
Manowar, согласен, тема далеко ушла от названия, но в начале, я не предполагал развитие темы до текущего момента и наивно полагал, что оптимизации поиска элемента будет достаточно.
Добавлено через 1 час 29 минут Что-то я совсем туплю и не могу придумать оптимального способа запоминать результат. Пока что есть только две мысли: одна не оптимальна, вторая требует слишком много памяти. 1. пихать в массив диапазон и ответ для него. Постоянно придется проходить по нему, при изменении осн. массива вообще дичь. 2. создать двумерный массив, где первый индекс начало, второй конец диапазона. Вот только весить такое чудо при длине исходного в 500'000 будет Добавлено через 30 минут Точно, можно же использовать map<make_pair<uint, uint>, uint> не знаю на сколько будет поиск по такому map'у, но это всяко лучше, чем то, что я смог придумать до этого
0
|
|
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
||||||
| 04.11.2018, 23:06 | ||||||
|
Cortas, вот это даёт больше баллов но проходит меньше тестов.
Можешь как-нибудь совместить со старым вариантом (например, не строя lookup, если максимум всех элементов <10).
0
|
||||||
|
223 / 150 / 79
Регистрация: 14.03.2016
Сообщений: 459
|
|
| 05.11.2018, 10:30 [ТС] | |
|
New man, а можете в кратце описать свой алгоритм?
0
|
|
|
309 / 221 / 74
Регистрация: 23.05.2011
Сообщений: 981
|
|
| 05.11.2018, 13:12 | |
|
Для каждого числа n строим как можно более короткие последовательности, где есть все значения от 0 до n.
Потом для l,r узнаём число start, для которого есть такая подпоследовательность в [l,r]. Для этого использую двоичный поиск.
1
|
|
|
223 / 150 / 79
Регистрация: 14.03.2016
Сообщений: 459
|
|||||||||||
| 05.11.2018, 15:52 [ТС] | |||||||||||
|
New man, я сделал немного иначе, правда в итоге программа прошла больше тестов, но заработала меньше баллов (24). В общем, я создал структуру, где лежит 2 числа диапазона и ответ для этого диапазона, взял ваш алгоритм по поиску числа. Далее я каждую команду запоминал, команда по поиску: диапазон, результат; команда по замене: первое число диапазона менял со стандартного (-1) на введенное. Если поступала команда по поиску, то я сначала проходил по массиву с историей и смотрел, есть ли там такой же диапазон или есть ли там изменения в нововведенном диапазоне. При выполнении первого условия просто выводил результат, при втором приходилось заново искать. Можно ли такую систему как-нибудь улучшить (если оно того стоит), например set'ом, просто я не до конца понимаю, как при поиске учесть след. условия:
код
0
|
|||||||||||
|
4 / 5 / 1
Регистрация: 28.06.2018
Сообщений: 29
|
|
| 07.11.2018, 01:01 | |
|
А может не будем дружно решать задачу с еще идущей олимпиады?
btw, достаточно простую задачу
0
|
|
|
223 / 150 / 79
Регистрация: 14.03.2016
Сообщений: 459
|
||
| 07.11.2018, 22:39 [ТС] | ||
|
0
|
||
|
4 / 5 / 1
Регистрация: 28.06.2018
Сообщений: 29
|
|
| 07.11.2018, 23:04 | |
|
На максимальный
0
|
|
|
738 / 705 / 110
Регистрация: 29.05.2015
Сообщений: 4,356
|
|
| 08.11.2018, 06:08 | |
|
Если я правильно понял задачу, зачем вообще сортировать исходный массив (ИМ)?
Очевидно, что если в ИМ будут присутствовать все числа 1-500000, то последовательность нигде не прерывается. Последовательность прервётся на том числе, которое будет первое отсутствовать в ИМ. алгоритм: 1. создать булевый массив (БМ) размером 500 000, заполненный false 2. пройти по ИМ от начала до конца, заполняя БМ: БМ[число из ИМ] = true; 3. пройти по БМ, первый false будет означать отсутствие данного числа в ИМ и прерывание последовательности.
0
|
|
|
322 / 174 / 78
Регистрация: 09.10.2014
Сообщений: 809
|
|
| 08.11.2018, 12:41 | |
|
0
|
|
| 08.11.2018, 12:41 | |
|
Найти минимальное из средних арифметических 3 массивов.
Из средних значений двух массивов найти минимальное Вычисление средних значений среди отрицательных чисел массивов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности.
Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
|
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version
Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
|
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер
На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
|
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/
TL DR
Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
|
|
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык.
Возвращает он вот это:
https:/ / i. **********/ vqBWLe2. png
Нужную строчку в 3й колонке просто выдумал. .
Это. . .
|
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor.
Это. . .
|
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js.
В помощники взял Яндекс-Алису.
Было создано три зала на разные интересы.
исторические и ретро
сериал Хичкок. . .
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|