This is a project to help me learn introductory algorithms, specifically Insertion, Selection, and Bubble Sort. Resources used were Grokking Algorithms, Lambda School's Training Kit, and limited youtube videos. As much as possible I avoided googling code directly as the goal was to try to transfer a spec to code with as little assistance as possible.
- Open up the recursive_sorting directory
- Read through the descriptions of the
merge_sort
algorithm - Implement
merge_sort
in recursive_sorting.py - Test your implementation by running
test_recursive.py
- Implement the
count_sort
algorithm in theiterative_sorting
directory. - Implement an in-place version of
merge_sort
that does not allocate any additional memory. In other words, the space complexity for this function should be O(1). - Implement the
timsort
algorithm, which is a real-world sorting algorithm. In fact, it is the sorting algorithm that is used when you run Python's built-insort
method.