Divide and conquer
Merge sort
Binary search
Stock price
- VP1 on A[1..n/2]
- VP2 on A[n/2+1..n]
- find smallest in A[1..n/2], bigest in A[n/2+1..n]
Exponential
Given a, n, output a**n
Naive: T(n)=T(n-1)+1=n
Smart: T(n)=T(n/2)+1=logn
Fibonacci
Naive: O(n)
Geeky: equation
Theorem:
Lightbulb technique
Karatsuba multiplication
Toy: addition of n-bit numbers, A=a_1,..a_n, B=b_1..b_n
C=AB, O(n^2)
Strassen multiplication
nxn matrix