O(n) — лінійна складність

← O(n) — лінійна складність

Ashterix

docs: English JsonRpcBundle docs, REST and MCP Bundle sections, package cards

uk/articles/from-tg/series/algorithm-complexity/o-n.md новий файл +28 −0

1 + # O(n) — лінійна складність
2 +
3 + Це найпоширеніший тип складності, який ви бачите щодня.
4 +
5 + Уявімо, що у вас є масив з 1000 елементів і потрібно знайти одне значення. Якщо масив не відсортований, іншого шляху, окрім як перевірити кожен елемент, просто немає. І саме це означає O(n) — час виконання зростає прямо пропорційно до кількості елементів.
6 +
7 + ## Приклад: лінійний пошук у масиві
8 +
9 + ```php
10 + function linearSearch($array, $target) {
11 + for ($i = 0; $i < count($array); $i++) {
12 + if ($array[$i] === $target) {
13 + return $i;
14 + }
15 + }
16 + return -1;
17 + }
18 + ```
19 +
20 + Класика. Від `foreach` до `array_map` або `array_filter` — більшість ваших ітерацій працює саме в O(n).
21 +
22 + O(n) — це ще не погано. Це нормально. Але якщо обробляєте мільйони записів — треба думати, як зробити краще.
23 +
24 + ← [Попередня: O(1) — константна складність](/articles/from-tg/series/algorithm-complexity/o-1) · [Уся серія](/articles/from-tg/series/algorithm-complexity) · [Наступна: O(log n) — логарифмічна складність →](/articles/from-tg/series/algorithm-complexity/o-log-n)
25 +
26 + ---
27 +
28 + *Вперше опубліковано в Telegram-каналі [«Створений щоб помирати»](https://t.me/php_while_true/24) 21.06.2025.*