Встречается на 1% собеседований по Python
Какие знаешь сложности алгоритмов
Вот основные сложности алгоритмов в порядке возрастания:
- O(1) - константная (доступ по индексу в массиве)
python
value = my_list[0] # O(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
return -1- O(n) - линейная (поиск в неотсортированном массиве)
python
for item in my_list: # O(n)
print(item)- O(n log n) - линейно-логарифмическая (быстрая сортировка)
python
sorted_list = sorted(my_list) # Timsort - O(n log n)- O(n²) - квадратичная (пузырьковая сортировка)
python
for i in range(len(arr)): # O(n²)
for j in range(len(arr)-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]- O(2ⁿ) - экспоненциальная (рекурсивный Фибоначчи)
python
def fib(n):
if n <= 1: return n
return fib(n-1) + fib(n-2) # O(2ⁿ)- O(n!) - факториальная (перебор всех перестановок)
Также существуют:
- O(n³) - кубическая (наивное умножение матриц)
- O(nᵏ) - полиномиальная
- O(n√n) - встречается в некоторых алгоритмах

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
Похожие вопросы
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы