An interactive web-based tool to visualize and compare the performance of sorting algorithms.
GitHub Repo: https://github.com/Mazen050/Sorting-Visualizer
Course: CSCI208 - Design and Analysis of Algorithms
| Name | ID |
|---|---|
| Mazen Kamal | 231002151 |
| Marwan Ayman | 231000704 |
| Shehab Hegazy | 231002292 |
| Mahmoud Hassan | 231000496 |
| Mohammed Bassel | 231001215 |
This project is a web-based educational tool designed to help students understand how various sorting algorithms work.
It provides step-by-step visualizations and interactive controls to observe how data gets sorted through animations.
- Bubble Sort β Compares and swaps adjacent elements repeatedly.
- Selection Sort β Finds and places the minimum element on each pass.
- Insertion Sort β Inserts each element into its correct position.
- Quick Sort β Uses a pivot to recursively divide and sort the array.
- Merge Sort β Divides the array and merges sorted halves efficiently.
- Python β Implements core sorting logic.
- JavaScript β Handles frontend interactions and animations.
- HTML & CSS β Structure and style the visual interface.
The frontend communicates with the backend to demonstrate each sorting algorithm in real-time.
We compared the algorithms based on time complexity, space complexity, and performance with different input sizes.
- Each sorting method has unique advantages and use cases.
- Merge Sort and Quick Sort perform better on large datasets.
- Bubble, Selection, and Insertion Sort are easier to understand but less efficient.
Visual comparisons and space complexity charts were included in the original GitHub README.
While all sorting algorithms ultimately sort the data correctly, their performance varies based on input size and structure.
This project helped us understand those differences through hands-on implementation and visualization.