awesome-everything EN
↑ Обратно к восхождению

Алгоритмы с нуля

Мышление и сложность: тест с выбором ответа

Суть Тест с выбором на синтез по всему юниту — доминирующий член, классы Big-O, компромисс время-память и чтение ограничений для выбора подхода.
Высота — путь к senior
НольJuniorMiddleSenior
Ты на middle-высоте — в небе
◷ 13 min

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

Цель

Убедись, что связываешь подсчёт шагов, Big-O, классы сложности, компромисс время-память и входные ограничения в одно суждение: вот код и вот лимиты — сколько это стоит и достаточно ли быстро?

Викторина

Алгоритм выполняет ровно 5n + n²/2 + 1000 базовых операций на входе размера n. Какова его Big-O и почему?

Викторина

В задаче указано n ≤ 1 000 000 при лимите в 1 секунду. Твоя первая идея — вложенный цикл O(n²). Прочитай ограничение — что оно говорит ещё до написания кода?

Викторина

Чтобы найти дубликат, можно взять вложенный цикл (время O(n²), память O(1)) или hash set (время O(n), память O(n)). На сервере с запасом памяти и пользователями, ждущими ответ, что выберешь и почему?

Викторина

В функции один цикл, выполняющийся n раз, и внутри него вызывается бинарный поиск (O(log n)) по отсортированному массиву. Какова её сложность по времени?

Викторина

Джуниор пишет largestOf с `let largest = 0` вместо `let largest = numbers[0]`, тестирует на нескольких списках из положительных чисел и выкатывает. Какой более глубокий урок, когда функция возвращает 0 для [-5, -3, -1]?

Викторина

Две процедуры сортировки обе «корректны». Merge sort — время O(n log n) / память O(n); bubble sort — время O(n²) / память O(1). Для сортировки 1 000 000 записей на обычной машине как верно это прочитать?

Итог

Сквозная линия юнита — одна привычка: до запуска оцени стоимость. Подсчитай шаги, оставь только доминирующий член, назови класс Big-O, взвесь время против памяти под своё реальное ограничение и дай границе входа подсказать, какой класс вообще допустим. И никогда не путай стоимость с корректностью — Big-O измеряет, насколько быстро, а инвариант цикла доказывает, верно ли это вообще.

Продолжить восхождение ↑Мышление и сложность: тест на припоминание
хоткеи развернуть
поиск
K
пред. пьеса
k
след. пьеса
j
тиры
t
это меню
?
sources3
expand
  1. 01
  2. 02
  3. 03

Trademarks belong to their respective owners. Editorial reference only.