каким образом изменение счета цикла с 0 до n и с n до 0 ускорит перебор?
Это ж все та же операция O(n)?
Тут важен именно то что происходит внутри функции for. Если ($i=0; $i<count($arr);...) То count будет выполнен при каждой итерации( а это уменьшает скорость прохода, так постоянно нужно вычислять количество элементов), а ещё в цикле for можно добавлять постоянно массиву элементов и сделать по сути whilе. Если делать ($i=count($arr), $i>0,...) То count вы полниться один раз, при инициализации.