Этап 1 из 18 · ≈ 40 ч

Алгоритмы и сложность

Основа с Junior

O-нотация, сортировки, бинарный поиск, рекурсия, обход графов — то, что спрашивают на алгоритмических секциях.

Сложность описывает, как растёт время или память с ростом входных данных. O(n) на миллионе элементов — миллисекунды, O(n²) — минуты.

Что важно знать

  • Оценивать сложность своего кода: вложенный цикл по тем же данным — O(n²), поиск в хеш-таблице — O(1) в среднем, сортировка — O(n log n).
  • Сортировки: как работают быстрая и слиянием, почему нижняя граница сравнивающих сортировок — n log n, что такое устойчивость. Встроенная сортировка языка почти всегда лучше своей.
  • Бинарный поиск по отсортированным данным — O(log n), и его вариации («первый элемент не меньше x»).
  • Два указателя, скользящее окно, префиксные суммы — приёмы, которые закрывают большую часть задач с массивами и строками.
  • Рекурсия и мемоизация, основы динамического программирования.
  • Графы: обход в ширину и в глубину, кратчайший путь.

Как готовиться

Решать задачи регулярно — 2–3 в неделю лучше, чем 50 перед собеседованием. Проговаривать решение вслух: на секции оценивают и рассуждение, и код, и проверку на граничных случаях.

Критерии освоения

Junior ≈ 40 ч

  • Оценивает сложность своего кода в O-нотации, включая вложенные циклы и операции со словарём
  • Объясняет, как работают быстрая сортировка и сортировка слиянием, и что такое устойчивость
  • Пишет бинарный поиск без ошибок на границах
  • Решает задачи на два указателя и скользящее окно уровня easy

Практика. Решить 30 задач уровня easy на массивы, строки, хеш-таблицы и бинарный поиск, у каждой записать сложность.

Middle ≈ 30 ч

  • Решает задачи уровня medium на графы (BFS, DFS), рекурсию и динамическое программирование
  • Проговаривает решение вслух, оценивает сложность и проверяет граничные случаи до запуска

Практика. Решить 40 задач уровня medium и пройти 2 пробные алгоритмические секции по 45 минут с решением вслух.

Проверка знаний

Войдите, чтобы пройти тест: сданный тест отмечает тему пройденной на карте и в ИПР.

Вопросы с собеседований

Смотреть все
Что такое О-большое (Big O) и зачем оценивать сложность алгоритма?Junior

О-большое описывает, как растёт время или память алгоритма с ростом входа n, отбрасывая константы и младшие слагаемые.

Полный разбор
Какие алгоритмы сортировки вы знаете и чем они отличаются?Junior

Простые — пузырьком, вставками, выбором — O(n²); эффективные — слиянием, быстрая, пирамидальная — O(n log n). Отличаются худшим случаем, памятью и устойчивостью.

Полный разбор
Как работает бинарный поиск?Junior

В отсортированном массиве сравниваем искомое с серединой и отбрасываем половину, где его быть не может: O(log n) шагов.

Полный разбор
Что такое рекурсия и мемоизация?Junior

Рекурсия — функция вызывает саму себя для меньшей задачи и останавливается на базовом случае; мемоизация — кэш уже посчитанных результатов.

Полный разбор
Чем обход в ширину (BFS) отличается от обхода в глубину (DFS)?Junior

BFS идёт по уровням через очередь и находит кратчайший путь по числу рёбер; DFS идёт вглубь до упора через стек или рекурсию.

Полный разбор
Что такое динамическое программирование?Middle

Динамическое программирование — решать задачу через ответы на перекрывающиеся подзадачи, считая каждую один раз и сохраняя в таблицу.

Полный разбор
Как работает сортировка слиянием?Junior

Делим массив пополам, рекурсивно сортируем половины и сливаем их, каждый раз беря меньший из двух первых элементов.

Полный разбор
Как работает быстрая сортировка и когда она работает медленно?Junior

Выбираем опорный элемент, разбиваем массив: меньшие — влево, большие — вправо, опорный встаёт на своё место; затем рекурсивно сортируем части.

Полный разбор
Что такое устойчивая (стабильная) сортировка и когда это важно?Junior

Устойчивая сортировка сохраняет исходный порядок элементов с равными ключами.

Полный разбор
Можно ли отсортировать быстрее, чем за O(n log n)?Middle

Сравнениями — нельзя: любой алгоритм, который только сравнивает элементы, в худшем случае делает Ω(n log n) сравнений. Без сравнений — можно при ограничениях на ключи.

Полный разбор

Документация

← Вся карта «ИИ-инженер»

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования