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

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

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

  • O(1) – константное время (доступ к элементу массива)
python
arr[0]  # O(1)
  • O(log n) – логарифмическое (бинарный поиск)
python
def binary_search(arr, target):
    left, right = 0, len(arr) - 1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
  • O(n) – линейное (поиск в неотсортированном массиве)
python
for x in arr:  # O(n)
    print(x)
  • O(n log n) – (быстрая сортировка, сортировка слиянием)
python
sorted(arr)  # Timsort: O(n log n)
  • O(n²) – квадратичное (пузырьковая сортировка)
python
for i in range(n):  # O(n²)
    for j in range(n):
        print(i, j)
  • O(2ⁿ) – экспоненциальное (рекурсивный Фибоначчи без мемоизации)
python
def fib(n):
    if n <= 1: return n
    return fib(n-1) + fib(n-2)  # O(2ⁿ)

Также есть пространственная сложность – потребление памяти. В реальных задачах важно учитывать оба типа сложности.

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

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

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

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