массиву циклом
for (i=0; i<=count(a); i++). Можно ли как-нибудь ускорить цикл?
Да.
1) Вынести count(a) в отдельную переменную;
2) Считать массив с конца циклом for (i=count(a); i>=0; i--).
какая разница с начала или с конца?
каким образом изменение счета цикла с 0 до n и с n до 0 ускорит перебор? Это ж все та же операция O(n)?
операция сравнения с 0 эффективнее. Если n длина массива, то на одну переменную меньше будет. Да.
Тут важен именно то что происходит внутри функции for. Если ($i=0; $i<count($arr);...) То count будет выполнен при каждой итерации( а это уменьшает скорость прохода, так постоянно нужно вычислять количество элементов), а ещё в цикле for можно добавлять постоянно массиву элементов и сделать по сути whilе. Если делать ($i=count($arr), $i>0,...) То count вы полниться один раз, при инициализации.
Ну да. Это понятно
Обсуждают сегодня