# [Sorting Algorithms](https://en.wikipedia.org/wiki/Sorting_algorithm)

Algorithms to sort sequences.

The algorithms under [`comparison`](./comparison) are comparison sorting algorithms, while the algorithms under [`integer`](./integer) are integer sorting algorithms, which can beat the `Ω(n * log(n))` lower bound of comparison sorting algorithms.

## Properties

There are different properties of sorting algorithms that one might be interested in.

- Time complexity
- Space complexity
- Stability
- In-place vs not-in-place
- Comparison sorting vs integer sorting
- Recursive
- Method: insertion, merging, exchange, selection, etc.

## TODO

### Comparison sorting

- In-place merge sort
- Intro sort
- Block sort
- Tim sort
- Cubesort
- Shell sort
- Exchange sort
- Binary Tree sort
- Cycle sort
- Library sort
- Patience sort
- Smooth sort
- Strand sort
- Tournament sort
- Cocktail shaker sort
- Comb sort
- Gnome sort
- Odd-even sort

### Non-comparison sorting

- Bucket sort