Analysis of Algorithm Lecture Notes