Встречается на собеседованиях • сегодня

Какие знаешь типы сложности алгоритмов

Временная сложность алгоритмов описывает, как быстро растёт время выполнения с увеличением размера входных данных. Основные типы:

  1. O(1) – константная сложность (доступ к элементу массива по индексу)
python
arr[5]  # O(1)
  1. O(log n) – логарифмическая (бинарный поиск)
python
def binary_search(arr, x):
    low, high = 0, len(arr)-1
    while low <= high:
        mid = (low + high) // 2
        if arr[mid] < x: low = mid + 1
        elif arr[mid] > x: high = mid - 1
        else: return mid
  1. O(n) – линейная (поиск в неотсортированном массиве)
python
for item in arr:  # O(n)
    print(item)
  1. O(n log n) – линейно-логарифмическая (быстрая сортировка, сортировка слиянием)

  2. O(n²) – квадратичная (пузырьковая сортировка)

python
for i in range(n):  # O(n²)
    for j in range(n):
        print(i, j)
  1. O(2^n) – экспоненциальная (рекурсивное вычисление чисел Фибоначчи)
  2. O(n!) – факториальная (перебор всех перестановок)

Пространственная сложность аналогично описывает использование памяти.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы