Video Demo: https://www.youtube.com/watch?v=hjY9Ifs8L6U
Hi everyone! I am Arjun Vijay Prakash from India and I will be taking you through this project.
SortingWiz is a Python and Pygame-based interactive sorting algorithm visualizer. It allows you to see how different sorting algorithms work in real-time by providing a visual representation of the sorting process.
Let’s look at some features of SortingWiz. You can visualize sorting algorithms in real-time, control the execution step by step, adjust the speed dynamically, and even enjoy sound effects to enhance your experience.
SortingWiz supports multiple sorting algorithms such as Bubble Sort, Insertion Sort, Selection Sort, and Heap Sort. You can choose your preferred algorithm and see it in action.
For those who are interested in technical details, SortingWiz shows the time and space complexity of each sorting algorithm. It is a great way to learn about different algorithms’ efficiency.
I appreciate your company throughout this exploration of SortingWiz. I hope it was both educational and fun for you. Feel free to try it out with different sorting algorithms. In case of any questions or feedback, please don’t hesitate to contact me. Happy sorting!
Getting Started Requirements:
-
Python 3
-
Pygame library
Installation:
pip install pygame
Running the Program:
python sortingwiz.py
Features Visualization of the following sorting algorithms:
- Bubble Sort
- Insertion Sort
- Selection Sort
- Heap Sort
- Real-time updates during sorting process.
There are the key user controls for the sorting program: a start/stop button, reset button, sorting order change(ascending/descending), and switch to another algorithm.
Controls
-
Q: Quit the program.
-
R: Reset the list.
-
Space: Start/stop sorting.
-
A: Sort in ascending order.
-
D: Sort in descending order.
-
I: Select Insertion Sort.
-
B: Select Bubble Sort.
-
S: Select Selection Sort.
-
H: Select Heap Sort.
User Interface Title: Displays the current sorting algorithm and order.
Controls: Shows key commands for user interaction.
Sorting Options: Lists available sorting algorithms.
Sorting Visualization: Displays a visual representation of the sorting process.
Additional Information: Displays project details and author information.
Contributing If you'd like to contribute to SortingWiz, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes.
- Submit a pull request.
Author Arjun Vijay Prakash (@ArjunCodess)
Acknowledgments This project was developed as a part of the CS50 Fall 2023 Final Project - SortingWiz.