Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/arjuncodess/algorithm_visualizer_pygame


https://github.com/arjuncodess/algorithm_visualizer_pygame

algorithm-visualisation algorithm-visualizer gui pygame python sorting-algorithms

Last synced: 2 days ago
JSON representation

Awesome Lists containing this project

README

        

# SortingWiz
#### Video Demo: https://www.youtube.com/watch?v=hjY9Ifs8L6U
#### Description:
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:**
```py
pip install pygame
```
Running the Program:
```py
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)](https://arjuncodess.vercel.app/)

**Acknowledgments**
This project was developed as a part of the CS50 Fall 2023 Final Project - SortingWiz.