# Interactive Python GUI for Visualizing Sorting Algorithms

> Dive into the world of sorting algorithms with this Interactive Python GUI, crafted using PyQt5 and Qt-Material. This app provides a visually engaging way to explore and compare various sorting algorithms, featuring real-time graphical representations that make the learning process both intuitive and fun. Ideal for students, educators, and anyone curious about algorithmic behavior, this tool offers a sleek, user-friendly interface that simplifies complex concepts. With easy setup instructions, it's an essential resource for understanding how different sorting algorithms operate and perform.

- **Author:** Keshav Lingala (Senior Software Engineer) — https://keshav.codes
- **Published:** September 2023
- **Project page:** https://keshav.codes/algorithm-analyzer/ (screenshots and diagrams are on that page)
- **Tech:** Python, Bash, Git, Jira
- **Source:** https://github.com/keshavlingala/AlgoAnalyzerTool
- **Topics:** python, tkinter, sorting-algorithms, gui, pyqt5, qt-material, matplotlib, numpy

---

A desktop GUI built with Python, PyQt5, and Qt-Material for visualizing and comparing how different sorting algorithms behave. It animates each algorithm step by step and charts its performance, making it a hands-on way to build intuition for algorithmic complexity.

## Screenshots

*Figure: Sorting visualization*

<br/>

*Figure: Theme selection*

<br/>

*Figure: Analysis screen*

## Demo Video

<iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/8yOZqOd-Utw?si=1lYNCXSIagH-FSZv"
        title="YouTube video player" frameBorder="0"
        allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
        allowFullScreen></iframe>

## Instructions to run the Application ( MacOS )

1. Clone the repository using this URL

```bash
git clone https://github.com/keshavlingala/AlgoAnalyzerTool
cd AlgoAnalyzerTool
chmod +x setup app # This will give execute permission to setup and app files
./setup # This create a virtual environment and install all the dependencies
./app # This will run the application
```

---

From the project archive of Keshav Lingala — https://keshav.codes. Machine-readable index: https://keshav.codes/llms.txt
