1.Легка
Що таке мемоізація?
- AЗбереження результатів викликів функції, щоб повторні виклики отримували відповідь із пам'яті
- BЗвільнення пам'яті після повернення з функції
- CНаписання коментарів біля кожного рядка коду
- DАвтоматичне перетворення рекурсії на рівносильний цикл, щоб стек викликів не був потрібен
2.Легка
Скільки додаткової пам'яті використовує стандартне сортування злиттям на основі масиву?
- AO(log n)
- BO(1)
- CO(n)
- DO(n²)
3.Легка
Що означає, що операція виконується за час O(1)?
- AЇї час виконання не зростає з розміром вхідних даних
- BВона завжди триває рівно одну секунду
- CЇї можна виконати лише один раз
- DВона обробляє рівно один елемент за секунду часу виконання
4.Середня
Приблизно скільки порівнянь потребує бінарний пошук у найгіршому випадку на відсортованому масиві з 1,000,000 елементів?
- AБлизько 500,000
- BБлизько 100
- CБлизько 1,000
- DБлизько 20
5.Середня
Який алгоритм знаходить найкоротші шляхи з одного джерела в графі з невід'ємними вагами ребер?
- AУ всіх випадках потрібен алгоритм Беллмана–Форда
- BАлгоритм Дейкстри
- CАлгоритм Краскала
- DПошук у глибину (DFS)
6.Середня
Що означає, що задача має оптимальну підструктуру?
- AУсі підзадачі мають однаковий розмір
- BЗадача має рівно один оптимальний розв'язок, спільний для кожної підзадачі
- CОптимальний розв'язок можна побудувати з оптимальних розв'язків її підзадач
- DЗадачу можна розв'язати за сталий час
7.Складна
Сортування вставками працює за O(n) на відсортованих даних. Чи суперечить це нижній межі Ω(n log n) для сортування порівняннями?
- AНі, бо сортування вставками не є сортуванням порівняннями
- BТак, але лише для масивів, коротших за 100
- CТак, отже, нижня межа хибна
- DНі, нижня межа стосується найгіршого випадку серед усіх вхідних даних, а не кожних вхідних даних
8.Складна
Яка амортизована вартість інкременту двійкового лічильника, якщо один інкремент може змінити багато бітів?
- AO(n) на інкремент
- BO(log n) на інкремент
- CO(1) на інкремент
- DO(n log n) на інкремент
Ключ відповідей
- 1. A · Збереження результатів викликів функції, щоб повторні виклики отримували відповідь із пам'яті
- 2. C · O(n)
- 3. A · Її час виконання не зростає з розміром вхідних даних
- 4. D · Близько 20
- 5. B · Алгоритм Дейкстри
- 6. C · Оптимальний розв'язок можна побудувати з оптимальних розв'язків її підзадач
- 7. D · Ні, нижня межа стосується найгіршого випадку серед усіх вхідних даних, а не кожних вхідних даних
- 8. C · O(1) на інкремент
Повні покрокові розв’язки: тренуйте цю тему на examproblems.com.