Вопрос:
Есть массив a = array(тут много элементов). Проходим по массиву циклом
for (i=0; i<=count(a); i++). Можно ли как-нибудь ускорить цикл?
Ответ:
1) Вынести count(a) в отдельную переменную
2) Считать массив с конца циклом for (i=count(a); i>=0; i--)
<= count (больше или равно) цикл будет выполняться вечно?Мне кажется или в условии ошибка и при <= count (больше или равно) цикл будет выполняться вечно?
во первых меньше или равно, во вторых цикл не будет вечным, так как i у вас все же увеличивается каждую итерацию и так или иначе условие выполнится. Единственная проблема тут, что он выполнится на 1 раз больше, чем надо с доступом к лишнему элементу.
Почему если бежать по массиву с конца будет быстрее?
Формально не важно с какой стороны проходить массива с начала или с конца. Вопрос в проверке условия. Условие i <= count выполняется на каждой итерации, то есть функция count выполняется каждый раз. В случае прохода с конца, count выполняется единожды для присваивания начального значения i. В случае если вынести len = count(a) перед циклом, и написать условие i < len то скорость будет одинакова.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости