Асимптотическая сложность — это способ понять, как будет меняться время работы программы, когда объём данных сильно вырастет. Обозначается нотацией Big O. Понятие часто встречается в программировании, поэтому его любят спрашивать на собеседованиях. Разберём кратко и наглядно 9 видов, начиная от самого быстрого, с примерами на Python. 1. O(1) — константное время
Время выполнения не зависит от размера данных.
Пример: доступ к элементу массива по индексу.
В результате получим единицу. Обращение к элементу массива происходит сразу, то есть 1 раз. Список (в нашем случае m) — структура данных, в которой каждому индексу соответствует значение. Если мы знаем индекс, то мы будем знать и значение. 2. O(logn) — логарифмическое время
Время растёт очень медленно. Основание логарифма может быть любым, но, как правило, это двойка (результат логарифма после знака равно это то, в какую степень нужно возвести основание, чтобы получить n. Например, если основание 2, n = 8, то log2 8 = 3).
Пример: бинар