1.Легка
Що описує час виконання алгоритму в найгіршому випадку?
- AМаксимальний час на всіх вхідних даних розміру n
- BЧас на повільному комп'ютері
- CЧас на найменших вхідних даних
- DОчікуваний час на випадкових вхідних даних розміру n
2.Легка
Яке позначення описує нижню межу зростання?
- AΩ (велике Омега)
- Bo (мале o)
- CΘ (велике Тета)
- DO (велике O)
3.Легка
Що таке мемоізація?
- AАвтоматичне перетворення рекурсії на рівносильний цикл, щоб стек викликів не був потрібен
- BЗбереження результатів викликів функції, щоб повторні виклики отримували відповідь із пам'яті
- CЗвільнення пам'яті після повернення з функції
- DНаписання коментарів біля кожного рядка коду
4.Середня
Динамічне програмування корисне, коли задача має:
- AПерекривні підзадачі та оптимальну підструктуру
- BЛише випадкові вхідні дані
- CЖодних підзадач, тож її можна розв'язати за один крок
- DОдин цикл
5.Середня
Який розв'язок рекурентного співвідношення T(n) = 2T(n − 1) + O(1)?
- AO(n²)
- BO(n log n)
- CO(n)
- DO(2ⁿ)
6.Середня
Який розв'язок рекурентного співвідношення T(n) = T(n − 1) + O(n)?
- AO(n)
- BO(2ⁿ)
- CO(n log n)
- DO(n²)
7.Складна
Яка часова складність: for i = 1 to n: for (j = i; j ≤ n; j = j + i) виконати роботу O(1)?
- AO(n)
- BO(n²)
- CO(n √n)
- DO(n log n)
8.Складна
Яке твердження про позначення «мале o» правильне?
- An = o(n²), але n не є o(n)
- Bn = o(n), бо кожна функція є «мале o» від самої себе
- C2n = o(n), бо 2n зростає повільно
- Dn² = o(n)
Ключ відповідей
- 1. A · Максимальний час на всіх вхідних даних розміру n
- 2. A · Ω (велике Омега)
- 3. B · Збереження результатів викликів функції, щоб повторні виклики отримували відповідь із пам'яті
- 4. A · Перекривні підзадачі та оптимальну підструктуру
- 5. D · O(2ⁿ)
- 6. D · O(n²)
- 7. D · O(n log n)
- 8. A · n = o(n²), але n не є o(n)
Повні покрокові розв’язки: тренуйте цю тему на examproblems.com.