This project demonstrates Binary Search and Merge Sort with interactive CLI visualizations, GUI animations, and practical application demos.
main.py— Program entry point and menusbinary_search.py— Binary Search implementationmerge_sort.py— Merge Sort implementationvisualizer.py— CLI visualization utilitiesgui_visualizer.py— Matplotlib GUI visualizationsapplications.py— Demos, use-cases, and GUI integrationtest_algorithms.py— Unit tests (pytest)
- Step-by-step algorithm walkthroughs with color-coded output
- Interactive number guessing game (Binary Search)
- Student search and grade sorting demos
- Performance statistics and comparisons
- Animated Merge Sort: Watch bars being sorted in real-time with color-coded phases
- Binary Search Steps: Visual representation of search range narrowing
- Complexity Comparison: Graph comparing O(log n), O(n), O(n log n), O(n²)
- Performance Benchmark: Real performance graphs for different input sizes
Run the main program:
python3 main.pyFrom the main menu:
- Options 1-5: CLI demonstrations
- Option 6: GUI visualizations (requires matplotlib)
- Option 7: Exit
Install dependencies:
pip install -r requirements.txtRequired packages:
- matplotlib (for GUI visualizations)
- numpy (for performance analysis)
- pytest (for running tests)
Run all tests:
pytest test_algorithms.py -v- CLI visualizations use blocking
input()calls for educational step-through - GUI visualizations open matplotlib windows (close window to continue)
- All tests pass with proper handling of interactive and non-interactive modes