# Sorting Algorithms

Sorting (for example the act of putting an unsorted list of numbers into ascending order) is a fundamental food of the computer science diet.

There are many different algorithms for sorting, and an understanding of their similarities and differences can give you a good understanding of some properties of all algorithms.

Concepts you will learn about include:

- Big O Notation
- Memory constraints
- Time constraints
- Serial versus Parallel
- Data structures
- Function reuse

Each of those topics are giants in the world of programming, and pop up all over the place.

## List of Sorting Algorithms

(This list is deliberately unsorted)

- Bubble Sort
- Insertion Sort
- Heap Sort
- Merge Sort
- Quicksort
- Bogosort

## External Links

- Wikipedia: Insertion Sort
- Wikipedia: Heap Sort
- Wikipedia: Merge Sort
- Wikipedia: Quicksort
- Wikipedia: Bogosort
- An Introduction to Sorting Algorithms