Deerenaros: У вас задача явно не до конца сформулирована, при текущих условиях нет ограничений на r и l, отсюда вытекает, что и их отношение может принимать любое значение.
netrox: А, я понял в чем у вас проблема :) Рекурсия обязательно должна иметь условие выхода, в данном случае, мы можем делать возврат как только длина сортируемого участка становится равна 1 (или сортировать пузырьком при небольшом числе элементов, 8 например).
devalone: Не сразу понял о чём вы. То решение о котором вы говорите используется для экономии памяти. Чтобы не считывать в память сразу все элементы (1440*4~5Kb), автор предлагает проходить по этим числам тем же самым окном ширины 5, но считывать в память только числа, входящие в текущее окно. С точки зрения экономии памяти - хорошее решение, более того, стандартное для поточных задач.
Если вам интересно с такими вещами более подробно разобраться - прорешайте (а не прочитайте) Кормена "Алгоритмы. Вводный курс.", потом можете почитать его же книжку "Алгоритмы. Построение и анализ", но это тот еще талмуд :) Главное, что нужно вынести - асимптотики выполнения операций над структурами данных.
devalone: вы не сдвигаете массив, просто инкрементируете индексы, стоимость операции - константа. Решение этой задачи за линейной время асимптотически оптимально, остальное - микрооптимизации, первой из которых может быть подсчет массива частичных сумм, чтобы не считать их несколько раз (тогда сумма элементов в окне считается за одно действие, как разность двух частичных сумм).
Денис Никитин: да это неважно, у меня тоже среднее, в Яндексе работать не мешает. Работодателю обычно всё равно какие у вас регалии, его навыки в первую очередь интересуют.
Зелим Бельтоев: запрос был "писать код в блокноте", если это код произвольной сложности, то без этих пунктов не обойтись. Если же задача более узкая, то нужно её описать более подробно.
web_dev: так вы его поадминить хотите или с точки зрения профессионального разработчика посмотреть, что с ним можно делать? Задачи принципиально разные.
web_dev: тут главное с целью определиться. Если вы всё хотите запускать на одной физической машине, то виртуализация нужна для изоляции приложений друг от друга, а докер-контейнеры скорее для удобства деплоя, что вам вряд-ли нужно. Я бы просто развернул вирткалку и туда все приложения поставил.