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

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

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

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

1.Легка

Який алгоритм сортування багаторазово міняє місцями сусідні елементи, що стоять у неправильному порядку?

  1. AСортування злиттям
  2. BШвидке сортування (quicksort)
  3. CСортування бульбашкою
  4. DПірамідальне сортування
2.Легка

Який клас складності зростає найшвидше для великих n?

  1. AO(n³)
  2. BO(2ⁿ)
  3. CO(n²)
  4. DO(n log n)
3.Легка

Що таке алгоритм повного перебору?

  1. AАлгоритм, що вгадує відповідь випадково
  2. BАлгоритм, що завжди використовує рекурсію
  3. CАлгоритм, що перебирає всі можливі кандидати на розв'язок
  4. DАлгоритм, що виконується на багатьох процесорах
4.Середня

Яка часова складність стандартного алгоритму динамічного програмування для найдовшої спільної підпослідовності рядків довжиною m і n?

  1. AO(mn)
  2. BO(m + n)
  3. CO(2m+n)
  4. DO(mn log n)
5.Середня

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

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

Нижня межа для сортування на основі порівнянь у найгіршому випадку становить:

  1. AΩ(n)
  2. BΩ(log n)
  3. CΩ(n log n)
  4. DΩ(n²)
7.Складна

Алгоритм динамічного програмування Гелда–Карпа точно розв'язує задачу комівояжера. Який його час виконання для n міст?

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

Яке визначення класу P правильне?

  1. AЗадачі, які можна розв'язати паралельно
  2. BЗадачі, що потребують експоненційного часу на будь-якому комп'ютері
  3. CЗадачі, розв'язки яких можна перевірити, але ніколи не можна знайти за поліноміальний час
  4. DЗадачі розпізнавання, розв'язні детермінованим алгоритмом за поліноміальний час

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

  1. 1. C · Сортування бульбашкою
  2. 2. B · O(2ⁿ)
  3. 3. C · Алгоритм, що перебирає всі можливі кандидати на розв'язок
  4. 4. A · O(mn)
  5. 5. A · Обрати заявку, що закінчується найраніше, а потім повторити із сумісними
  6. 6. C · Ω(n log n)
  7. 7. A · O(n² 2ⁿ)
  8. 8. D · Задачі розпізнавання, розв'язні детермінованим алгоритмом за поліноміальний час

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