• Binary search
  • Running time
  • Lists + Arrays
  • Selection sort
  • Recursion
  • Divide and Conquer
  • Quicksort
  • Hash tables
  • Graphs + Breadth-first search
  • Dijkstra's Algorithm
  • Greedy algorithms
  • Dynamic programming
  • k-nearest neighbors
  • Trees
  • Inverted indexes
  • Fourier transform
  • Parallel algorithms
  • Bloom filters + HyperLogLog
  • SHA algorithms
  • Diffie-Hellman key exchange