Files
agila-learning-examples/en/expanded-26-1/lesson-3/lesson.html
T

8 lines
1.2 KiB
HTML

<!doctype html><html lang="en"><meta charset="utf-8"><title>Binary search needs an invariant</title><h1>Binary search needs an invariant</h1><p>15-minute session: read for 3 minutes, trace for 3, experiment for 7, and complete the check for 2. Spend longer whenever you need.</p><p>Binary search relies on sorted data and a shrinking search interval. A faster loop on unsorted data can return a wrong answer. Use a library operation, test insertion at both ends and an existing value, then explain the invariant before implementing your own.</p><p><strong>Practice and evidence:</strong> Predict the example or draw its state transitions. Change one assumption, test the boundary, and record the actual result. Explain what this small model does not establish about a production system.</p><pre><code class="language-python">from bisect import bisect_left
values=[2,4,6]
print(bisect_left(values,1))
print(bisect_left(values,4))
print(bisect_left(values,8))
</code></pre><p><strong>Expected result:</strong> <code>0
1
3</code></p><h3>Practice and evidence</h3><p>Keep three notes: your prediction, the actual result, and why they match or differ. The completion check grades understanding; the practice task builds skill.</p></html>