Вопрос:
Есть массив 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
то скорость будет одинакова.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Использую плагин Strong Testimonial, нужно немного изменить функционал js скрипта, как это правильно сделать, что бы и после обновления плагина все...
В данный момент есть категория "Номер 1" в нее входят подкатегории "Номер 11" "Номер 1
Сравнительно недавно пишу в ООП нотации, изучаю Ларавел, пытаюсь разобраться с DIТак же есть надобность написать Бота, который сможет отвечать...