Trurl писал(а):
Да, вот как раз о принципе. Второй алгоритм быстрее, можно даже выгадать несколько микросекунд, но зато он хуже структуирован.
Хм. О структуре я не подумал... Инерция мышления, однако.
Нужно определиться с критериями оценки, а это извечная проблема контролирующего образования (наряду с вопросом "а судьи кто?"). Как известно, множество правильно решающих задачу алгоритмов различается по потреблению ресурсов разного типа. Одни используют больше процессорного времени, другие больше памяти или еще чего-нибудь. Вы добавляете критерий структурированности алгоритма, что предполагает еще один ресурс - время на понимание алгоритма, например, с целью его поддержки и сопровождения. Это, конечно, очень важная характеристика, поскольку большую часть времени программист не пишет, а читает. (Однако, замечу в скобках, что эта характеристика является и наиболее субъективной.)
Подбор критериев напрямую зависит от образовательных задач. Чему мы хотим научить, какие алгоритмы изготавливать: быстрые, компактные или понятные. Как отразить этот трехкоординатный вектор на одномерную балльную шкалу? Только явно сформулировав в задании приоритетное направление. При такой формулировке задачи, которая была приведена, и при условии, что контекст ЕГЭ не устанавливает общего идеологического направления ("русский программист пишет
быстрые программы!" и т. п.), оба варианта заслуживают одинаковой положительной оценки, поскольку поставленную задачу - выполняют. И вопрос о том, про файлы речь или про числа в памяти, соответственно, ни при чем: четко написано, что "числовой массив".
С контекстом ЕГЭ я не знаком, но если брать отдельно взятое задание, то в нем нехватает критериев для оценки, отличной от "0 баллов за невыполненное задание либо 1 балл за выполенное".