ЛР14. Двійковий пошук і передумова впорядкованості
Коротко про роботу
Каталог уже впорядкований. Пошук звужує активний інтервал після кожної перевірки середини. Варіант визначає STUDENT_X.
Відкрити робочий зошит Як виконувати лабораторні
1. Умова
Каталог уже впорядкований. Пошук звужує активний інтервал після кожної перевірки середини.
Усі обчислення виконуйте з даними свого STUDENT_X. Значення варіанта друкує перша комірка зошита.
2. Що треба знати
Робота виконується після Л1–Л7. Потрібні поняття:
- передумова впорядкованості
- двійковий пошук
O(log n)- інваріант активного інтервалу
Межа матеріалу
Використовуйте поняття, вивчені до Л1–Л7. Не викликайте std::find або бібліотечну функцію двійкового пошуку замість власної реалізації.
3. Варіант, вхідні дані та результат
У зошиті заповніть STUDENT_NAME, STUDENT_GROUP і STUDENT_X від 1 до 30.
Вхідні дані
| Поле | Зміст |
|---|---|
values |
впорядкована послідовність |
target |
ціль |
unsorted_probe |
та сама послідовність із локальним порушенням порядку |
Поля результату
| Поле | Зміст |
|---|---|
found_index |
позиція або -1 |
iterations |
кількість перевірених mid |
mid_trace |
послідовність індексів середини |
Назви полів результату не змінюйте.
4. Терміни і правила
Терміни
- передумова — умова, яка має бути істинною до запуску алгоритму.
- напіввідкритий інтервал
[low, high)— індекси відlowвключно доhighневключно. - середній індекс — індекс середини активного інтервалу.
Правила
valuesуже впорядковано за зростанням. Основний пошук працює з напіввідкритим інтервалом[low, high).- На кожній ітерації
mid = low + (high - low) / 2з цілочисельним діленням. mid_traceзберігає кожний перевірений індексmidу фактичному порядку.unsorted_probeпризначений лише для демонстрації порушення передумови. Контрольні поля обчислюються дляvalues.
5. Завдання
Завдання 1
Реалізуйте двійковий пошук у values. Запишіть індекс у found_index, а кількість перевірок — у iterations.
Завдання 2
Під час пошуку додавайте кожний перевірений індекс mid у mid_trace.
Завдання 3
Запустіть двійковий пошук для unsorted_probe. Поясніть одним реченням, чому без впорядкування результат не гарантований.
6. Перевірка і здача
- Запустіть самоперевірку та виправте помилки.
- Перезапустіть ядро і виконайте роботу ще раз від початку.
- Збережіть
.ipynbі PDF з кодом та результатами.
Назва PDF: LR14_Прізвище_Група_VNN.pdf.