19 страница22 апреля 2026, 21:52

1 ГЛАВА 'Наглядное представление «О-большое»'

Чтобы повторить следующий практический пример, достаточно иметь несколько листков бумаги и карандаш. Допустим, вы должны построить сетку из 16 квадратов.

d1bc9c4f829d4bfb692f24616e05f69b.avif

Алгоритм 1

Как вариант можно нарисовать 16 квадратов, по одному за раз. Напоминаю: 'О-большое' подсчитывает количество операций. В данном примере рисование квадрата считается одной операцией. Нужно нарисовать 16 квадратов. Сколько операций по рисованию одного квадрата придется выполнить?

15bbd98bf5bbb8d1ef92b3f1e4cff5f5.avif

Чтобы нарисовать 16 квадратов, потребуется 16 шагов. Как выглядит время выполнения этого алгоритма?


Алгоритм 2

А теперь попробуем иначе. Сложите лист пополам.

af990f66c371e355da2d7e6e15221a1e.avif

На этот раз операцией считается сложение листка. Получается, что одна операция создает сразу два прямоугольника!


Сложите бумагу еще раз, а потом еще и еще.

47afbeafff2104b96ccd143d02e32fbe.avif

Разверните листок после четырех сложений - получилась замечательная сетка! Каждое сложение удваивает количество прямоугольников. За 4 операции вы создали 16 прямоугольников!

9ef349ab6e3b7b0753e462b0e0f7b2fb.avif

При каждом складывании количество прямоугольников увеличивается вдвое, так что 16 прямоугольников строятся за 4 шага. Как записать время выполнения этого алгоритма? Напишите время выполнения обоих алгоритмов, прежде чем двигаться дальше.


Ответы: алгоритм 1 выполняется за время О(n) , а алгоритм 2 - за времяO(log n).

19 страница22 апреля 2026, 21:52

Комментарии

0 / 5000 символов

Форматирование: **жирный**, *курсив*, `код`, списки (- / 1.), ссылки [текст](https://…) и обычные https://… в тексте.

Пока нет комментариев. Будьте первым!