Робочий аркуш «Алгоритми та складність» з відповідями

Безкоштовний робочий аркуш для друку «Алгоритми та складність»: 8 задач від легких до рівня іспиту, з ключем відповідей. Роздрукуйте його або збережіть як PDF.

Для викладачів: можна безкоштовно друкувати, копіювати й використовувати на заняттях. Кожен новий аркуш має нові значення і власні відповіді. Будемо вдячні за посилання на ExamProblems на сторінці вашого курсу.

Ім’я: ____________________   Дата: ____________

1.Легка

Алгоритм O(n) працює 3 секунди для n = 1 мільйон. Приблизно скільки він працюватиме для n = 2 мільйони?

  1. A3 секунди
  2. B9 секунд
  3. C6 секунд
  4. D12 секунд
2.Легка

Що таке базовий випадок рекурсивної функції?

  1. AПерший рядок функції
  2. BВипадок, на який відповідають безпосередньо, без нового рекурсивного виклику
  3. CВиклик, що використовує найбільше пам'яті
  4. DВипадок із найбільшими вхідними даними, який обробляється до будь-яких рекурсивних викликів
3.Легка

Яка часова складність пошуку в глибину на графі, збереженому у вигляді списків суміжності?

  1. AO(E log V)
  2. BO(V²)
  3. CO(V + E)
  4. DO(V × E)
4.Середня

Маючи монети номіналом 1, 3 і 4 та суму 6, скільки монет використовує жадібний метод «спершу найбільша монета» порівняно з оптимумом?

  1. AЖадібний використовує 3 монети; оптимум — 2
  2. BЖадібний використовує 4 монети; оптимум — 3
  3. CЖадібний використовує 3 монети; оптимум — 3
  4. DЖадібний використовує 2 монети; оптимум — 2
5.Середня

Ви один раз сортуєте масив із n елементів, а потім відповідаєте на k запитів про належність бінарним пошуком. Яка загальна вартість?

  1. AO(nk)
  2. BO(k n log n)
  3. CO(n + k)
  4. DO(n log n + k log n)
6.Середня

Яке жадібне правило в задачі про вибір заявок (activity selection) завжди дає максимальну кількість заявок, що не перекриваються?

  1. AОбрати заявку, що закінчується найраніше, а потім повторити із сумісними
  2. BОбрати заявку, що починається найраніше
  3. CСпершу обрати заявку з найменшою кількістю перекриттів, а потім повторити із сумісними
  4. DСпершу обрати найкоротшу заявку
7.Складна

Яка часова складність: for i = 1 to n: for (j = i; j ≤ n; j = j + i) виконати роботу O(1)?

  1. AO(n)
  2. BO(n²)
  3. CO(n √n)
  4. DO(n log n)
8.Складна

Чому бінарний пошук не дає часу O(log n) на однозв'язному списку?

  1. AЗв'язні списки неможливо сортувати
  2. BБінарному пошуку потрібно щонайменше вдвічі більше пам'яті
  3. CПорівняння вузлів зв'язного списку повільніші
  4. DЩоб дістатися середнього елемента, потрібно O(n) кроків, бо немає прямого доступу за індексом

Ключ відповідей

  1. 1. C · 6 секунд
  2. 2. B · Випадок, на який відповідають безпосередньо, без нового рекурсивного виклику
  3. 3. C · O(V + E)
  4. 4. A · Жадібний використовує 3 монети; оптимум — 2
  5. 5. D · O(n log n + k log n)
  6. 6. A · Обрати заявку, що закінчується найраніше, а потім повторити із сумісними
  7. 7. D · O(n log n)
  8. 8. D · Щоб дістатися середнього елемента, потрібно O(n) кроків, бо немає прямого доступу за індексом

Повні покрокові розв’язки: тренуйте цю тему на examproblems.com.