170 похожих чатов

Https://Www.Kobzarev.Com/Wp-Content/Uploads/Books/Php/PHPbook.Pdf 39. Есть массив a = array(тут много элементов). Проходим по

массиву циклом
for (i=0; i<=count(a); i++). Можно ли как-нибудь ускорить цикл?
Да.
1) Вынести count(a) в отдельную переменную;
2) Считать массив с конца циклом for (i=count(a); i>=0; i--).
какая разница с начала или с конца?

4 ответов

10 просмотров
бджовелін⁂- Автор вопроса

каким образом изменение счета цикла с 0 до n и с n до 0 ускорит перебор? Это ж все та же операция O(n)?

бджовелін⁂
каким образом изменение счета цикла с 0 до n и с n...

операция сравнения с 0 эффективнее. Если n длина массива, то на одну переменную меньше будет. Да.

бджовелін⁂
каким образом изменение счета цикла с 0 до n и с n...

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

Похожие вопросы

Обсуждают сегодня

коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
Ребят, привет. Интересует вопрос: есть ли способ получить доступ к WebView в Linux? Рылся-ковырялся, решения не нашел. Объясню сразу задачу, возможно, скажете, что копаю не в...
advanc3d
13
Hi there everyone Is there anyone who have not started hamster bot yet? I need only one, I'll be glad if you do this for me DM if you haven't yet
Mehrshad
53
вышел новый лазарус 3.4.0 кто пользовался? что нового? на что обратить внимание? итд
livontiy
22
Здравствуйте, надеюсь найти ответ, при выполнение программы все работает, но добавим на форму элемент, при новом запуске остается то что было до изменения, новой кнопки, разме...
Стивен Хикс
15
Что нового в Xcode 16 Xcode 16 приносит много обновлений. Главное - появление ИИ, которое отметили еще в кейноуте. В Xcode появится предиктивное завершение кода, основанное н...
✌️(´ヮ`)
1
то есть мне надо,как бы, в столбик поделить 1/6=0b1/0b110 и получить двоичное число? тогда я получу наконец то те самые 0x5555555555 ?
Павлик Ливаткин
12
Добрый день. Ни у кого случайно нет примера Си+SDL2 анимации объекта? Не получается реализовать движение ((( Схема такая: SDL_CreateWindow SDL_GetWindowSurface SDL_FillRect ...
8921 *** ** **
9
Приветствую! Созревает желание обновить перловые пакеты в рабочем ПАКе на Oracle Linux 8 (потомок CentOS). Сделать это могут админы, но хотят rpm что бы легко их по всем конте...
Alexander
10
всем привет. Может кто нибудь объяснить фокус с целочисленным делением? компилятор заменяет выражение вида x/6 на MOVQ AX, CX SARQ $63, AX MOVQ ...
Павлик Ливаткин
6
Карта сайта