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

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

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

  1. O(1) – константная сложность (доступ к элементу массива)
python
def get_first(arr):
    return arr[0]  # Всегда один шаг
  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
        else:
            high = mid - 1
  1. O(n) – линейная (поиск в неотсортированном массиве)
python
def linear_search(arr, x):
    for item in arr:
        if item == x:
            return True
  1. O(n log n) – линейно-логарифмическая (быстрая сортировка)

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

python
def bubble_sort(arr):
    n = len(arr)
    for i in range(n):
        for j in range(n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]
  1. O(2ⁿ) – экспоненциальная (рекурсивные вычисления Фибоначчи)

  2. O(n!) – факториальная (перебор всех перестановок)

Также существуют пространственные сложности, описывающие использование памяти.

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

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

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

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