- A great collection of data structures & algorithms from the Grokking Algorithms book implemented in several languages is available on GitHub
- How to analyze time complexity: Count your Steps
- Algorithm Anlysis is an in depth introduction to algorithm analysis
- A Beginner's Guide to Big-Oh Notation
- Big-Oh: How Code Slows as Data Grows has examples in Python, but a good overview
- Complexity and Big-O Notation
The problems listed here are well beyond what I will expect you to do in this class, but you should have the ability by the end of the course to complete them. They make great practice for coding interviews.
- The Great Tree-List Recursion Problem is a challenging practice problem that uses trees & doubly linked lists.
- The Case for Learned Index Structures describes a method for using artificial intelligence techniques to learn a more efficient index.
- Algorithms as IKEA instructions