AlcoRhythm

AlcoRhythm 

Алгоритмы и Структуры данных

11subscribers

149posts

Showcase and bundles

3
A bundle is a collection, compilation, playlist, or catalog of posts that saves you from searching through the blog and lets you buy the entire content series in a single click.
goals1
$25.45 of $12.8 raised
На Балтику №(от 0 до 10) для видео :]

O(n²) - квадратичная сложность

<<Назад | Программа курса | Далее>>
Самый яркий пример квадратичной сложности - вложенный цикл.
Продолжаем тему пива 😋
На вечеринке 10 человек. Каждому необходимо выпить с каждым.
То есть первый человек обойдет всех, затем второй человек обойдет всех и т.д.
___
Вроде все понятно, но, наверное, вы скажете:
"Когда первый человек обойдет всех, он выпьет со вторым. Когда пойдет второй человек, он уже пил с первым, значит может не подходить…".
Вы снова абсолютно правы!
Для вычисления количества операций есть математическая формула:
n * (n - 1) / 2
Подставим значение:
10 * (10 - 1) / 2 = 45
Не смотря на то, что количество подходов будет даже меньше половины, асимптотика все равно остается O(n²).
Почему? Давайте разберемся...
Представьте эту запись n * (n - 1) / 2 как дробь:
 n * (n - 1) - числитель
_________
       2        - знаменатель
Вспоминаем фразу: 
Сложность определяется самым быстро растущим элементом в выражении.
n - 1: Единицу можем откинуть, остается
 n * n
_____
   2
Запишем по-другому:
O(1/2n²) - коэффициенты можно убрать, остается O(n²).
Чувствуйте, как вы уже начинаете разбираться?
____
<<Назад | Программа курса | Далее>>
Subscription levels2

EasyPeasy / Проще некуда

$1.91 per month
Реквизит для "проще некуда"
Ищи по тегу easy-peasy

В РИТМЕ

$6.4 per month
Алгоритмы на практике:
- Поиск контактов в iPhone
- Задачи из списка Яндекс
Go up