A premium, interactive web-based sorting visualizer and complexity analyzer. This platform allows users to visualize standard sorting algorithms in real-time, compare their performance on identical datasets, and view detailed complexity statistics.
- 📈 Real-Time Visualization: Powered by Chart.js, rendering individual steps for comparisons and swaps.
- 🎨 Dynamic Highlighting:
- Orange (
--accent-3): Highlights bars currently being compared. - Red (
--accent-1): Highlights bars whose values/indices are changed/swapped.
- Orange (
- 🏆 Performance Leaderboard: A dynamic summary table that automatically ranks completed algorithms from fastest to slowest, showing time in milliseconds, comparison counts, and swap metrics with custom speed progress bars.
- ⚙️ Custom Dataset Generation:
- Enter numbers manually via comma/space separated values.
- Generate randomized arrays with custom size and range.
- Load custom data from a plain text (
.txt) file.
- ⏯️ Playback Controls: Fully adjustable speed options (Fast, Normal, Slow) and Pause/Resume functionalities.
- 💾 Export Options: Export the performance metrics as a CSV file or save the visualizer canvas state as a PNG.
- 📚 Theoretical Complexity Grid: Reference table for Time (Best, Avg, Worst) and Space complexities.
- Bubble Sort - O(n²) average time
- Selection Sort - O(n²) average time
- Insertion Sort - O(n²) average time
- Merge Sort - O(n log n) average time
- Quick Sort (Lomuto) - O(n log n) average time
- Heap Sort - O(n log n) average time
- Counting Sort - O(n + k) average time
- Radix Sort (Base 10) - O(nk) average time
Since this project utilizes ES modules (type="module"), it must be served through a local development web server to resolve imports correctly.
- Open the project folder in VS Code.
- Install the Live Server extension.
- Click the Go Live button in the status bar (serves on port
5500by default).
If you have Node.js installed, run:
npx serve -l 5500Then navigate to http://localhost:5500 in your web browser.
This is a personal project developed by Mennatallah Essam Mounir.
