Some of the sorts we've encountered are:
- selection sort - find the smallest item in the unsorted portion of the array and place it in its final spot
- insertion sort - go through the list item by item, placing each item into its right spot relative to the already sorted items
- bubblesort - go through the list comparing and swapping adjacent items as needed and repeatedly do this until the list is sorted
- quicksort - choose a pivot and split the list into two; items smaller than the pivot (left) and items larger than the pivot (right) and then recursively call quicksort on both and then join the sorted left, pivot and sorted right.
- mergesort - split the list into two, sort each and then merge the two sorted lists
An interesting point to note, the built-in sort used by Python employs many different types of sorts, depending on the size of the array passed in, which is why it is faster than all of the sorts mentioned above - it makes use of all the benefits offered by various sorting algorithms!