Insertion Sort
The insertion sort divides the data into a
sorted and unsorted region.
Initially, the entire list is unsorted.
Then, at each step, the insertion sort takes
the first item of the unsorted region and
places it into its correct position in the sorted
region.