Sorting Algorithms Visualizer is an interactive desktop application that brings sorting algorithms to life through real-time visualizations. Built with C# and MonoGame/XNA, this application leverages asynchronous programming for smooth, non-blocking animations and features a fully responsive, custom UI that automatically resizes according to the current resolution.
Inspired by an engaging YouTube video on algorithm visualizations:
Sorting Algorithms Visualization
this project was created to provide an intuitive and educational experience for both students and enthusiasts.
-
Responsive User Interface
- The UI scales dynamically to any resolution. Changing the resolution updates the layout, and all UI components (buttons, panels, grids) automatically resize and reposition.
- Enjoy a modern, sleek interface with custom-designed UI components that adjust in real time.
-
Interactive Sorting Visualizations
- Visualize popular sorting algorithms such as Bubble Sort, Insertion Sort, Selection Sort, Merge Sort, Quick Sort, Heap Sort, Combo Sort, Cocktail Sort, Odd-Even Sort, and Randomize Shuffle.
- Each algorithm includes detailed animations that highlight comparisons, swaps, and key steps, all implemented using asynchronous programming techniques.
-
Asynchronous Programming
- Built using C# async/await, ensuring fluid animations and a responsive user experience even during complex sorting operations.
- The asynchronous design allows user interactions to be handled smoothly without blocking the UI.
-
Customizable Settings
- Modify settings such as screen resolution, number of lines, margins, and algorithm speed.
- Settings are persistently saved to a JSON file in the AppData folder (
%APPDATA%/Sorting_Algorithms_App/settings.json
) and loaded upon startup. If the settings file or folder does not exist, they are automatically created with default values. - Enjoy automatic full-screen mode when using native resolution, and easily toggle between windowed and full-screen displays.
-
Stylish UI
- Includes custom logo and option panels for selecting resolution and sorting algorithms.
- Intuitive buttons and text boxes allow quick adjustments and interact with the visualizations.
- The UI is designed to update dynamically as you change settings, ensuring a smooth transition between different modes.
- C# – The primary language used for development.
- MonoGame/XNA Framework – For graphics rendering and game loop management.
- Asynchronous Programming (async/await) – Ensuring non-blocking, smooth animations and user interactions.
- JSON – Used for saving and loading application settings.
- Custom UI Components – Created specifically for this project to provide a responsive and modern look.
- .NET Core SDK or .NET Framework
- MonoGame Framework (if not using a preconfigured environment)
- Clone the Repository:
git clone https://github.com/TexablePlum/Sort_Algorithms.git
cd Sort_Algorithms
- Build the Project: Open the solution file in Visual Studio (or your preferred IDE) and build the project, or use the command line:
dotnet build
- Run the Application:
dotnet run
Start Screen with responsive UI and dynamic resolution changing.
Live visualization of a sorting algorithm in action.
This project was inspired by a YouTube video on sorting algorithms visualization:
The desire to understand and interact with sorting algorithms, combined with the visual power of asynchronous programming in C#, led to the creation of this application.
This project is licensed under the MIT License. See the LICENSE file for details.
Enjoy exploring sorting algorithms! 🎉