Skip to content

feat: add Binary Search algorithm (Phase 6) - #15

Merged
sjamal merged 1 commit into
mainfrom
feature/phase-6-binary-search
Aug 23, 2026
Merged

feat: add Binary Search algorithm (Phase 6)#15
sjamal merged 1 commit into
mainfrom
feature/phase-6-binary-search

Conversation

@sjamal

@sjamal sjamal commented Aug 23, 2026

Copy link
Copy Markdown
Owner

Adds an iterative Binary Search over sorted arrays, exposed through the existing MCP/HTTP service layer as well as src/, with full test coverage and ADR 0019. Also expands ROADMAP.md with new Phase 7 (BFS/DFS/Kruskal's) and Phase 8 (PageRank, Fast Inverse Square Root).

- Add src/searching/binary_search.py implementing iterative midpoint
  bisection over a sorted array, guaranteeing O(log n) worst-case
  time with O(1) space.
- Add tests/test_searching.py covering present-value lookups (first,
  middle, last), absent values, empty array, and single-element array
  cases, with full coverage.
- Expose Binary Search via the service layer: search_binary_search
  wrapper in service/tools.py, MCP tool, and
  POST /searching/binary-search endpoint, each with tests.
- Add ADR 0019 documenting the iterative bisection design.
- Expand ROADMAP: add Binary Search to Phase 6 (Completed), and add
  new Phase 7 (BFS, DFS, Kruskal's) and Phase 8 (PageRank, Fast
  Inverse Square Root) based on discussion of additional candidates.
@sjamal
sjamal merged commit 9d28bd8 into main Aug 23, 2026
1 check passed
@sjamal
sjamal deleted the feature/phase-6-binary-search branch August 23, 2026 01:48
sjamal added a commit that referenced this pull request Aug 23, 2026
- Add src/searching/binary_search.py implementing iterative midpoint
  bisection over a sorted array, guaranteeing O(log n) worst-case
  time with O(1) space.
- Add tests/test_searching.py covering present-value lookups (first,
  middle, last), absent values, empty array, and single-element array
  cases, with full coverage.
- Expose Binary Search via the service layer: search_binary_search
  wrapper in service/tools.py, MCP tool, and
  POST /searching/binary-search endpoint, each with tests.
- Add ADR 0019 documenting the iterative bisection design.
- Expand ROADMAP: add Binary Search to Phase 6 (Completed), and add
  new Phase 7 (BFS, DFS, Kruskal's) and Phase 8 (PageRank, Fast
  Inverse Square Root) based on discussion of additional candidates.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant