Sorting Algorithms Visualizer & Comparative Performance Study
A two-part study project on sorting algorithms, done with fellow students Antoine, Guillaume, and Logan: a C++ visualization app to watch algorithms sort in real time, and a Python/Jupyter analysis pipeline to quantify what the eye can only approximate.
Structure
-
App/— the C++ visualization application. Each sorting algorithm (e.g../Sorting_Algorithm HeapSort) runs as a standalone visual demo. -
Data/— the analysis side: one Jupyter notebook per algorithm with pseudocode, efficiency plots across data types, and a synthesis notebook (ComparatifInterAlgo.ipynb) that identifies the best algorithm per scenario.
What the analysis covers
The notebooks benchmark each algorithm against several input distributions — uniformly random data (Fisher–Yates shuffled), data pre-sorted except for a shuffled prefix or suffix, and more — using Pandas, NumPy, SciPy, and Matplotlib to turn raw timing data generated by the C++ side into comparative plots and a written summary.
Why it was worth doing
It’s one thing to know the theoretical complexity of quicksort vs. heapsort vs. insertion sort; it’s another to watch how much that theory actually predicts once you throw real, imperfect data distributions at each algorithm — a good early lesson in why empirical benchmarking matters alongside asymptotic analysis.
Stack: C++, Python (Pandas, NumPy, SciPy, Matplotlib), Jupyter Notebook. Code: github.com/VendenIX/analyse_tris Demo video: youtube.com/embed/HMKchM3o8Xk
Enjoy Reading This Article?
Here are some more articles you might like to read next: