# SortingAlgorithmVisualization

A place for me to learn about sorting algorithms.

## Getting started

- Install python on your machine.
- Install pygame by running this command:
`pip install pygame`

. - Navigate to the folder at which
`main.py`

is located. - In your terminal run
`python main.py`

## How to navigate the GUI

On the bottom of the screen there are buttons with different sorting algorithms. Press on one and it will randomize the array and start sorting it.

To increase the number of elements in the array press the `↑`.

To decrease the number of elements in the array press the `↓`.

To increase the Frame Rate press the `→`.

to decrease the FrameRate press the `←`.

## Implemented sorting algorithms

### Counting Sort

Counting Sort is a good algorithm for lists with small positive integer

Speed: O(n+k)

n is number of elements in the array.

k is range of possible numbers in the array.

### Bubble Sort

Bubble Sort a simple inefficient sorting algorithms. Works with any float or integer

Speed: Speed: O(n²)

n is number of elements in the array.

### Quick Sort

Quick Sort is a divide and conquer sorting algorithm.

Speed: O(log n)

n is number of elements in the array.

### Bogo Sort

Bogo Sort is made as a joke. It works by shuffling the list until it is sorted.

Speed: O((n-1)* n!)

n is number of elements in the array.