Lecture - 3. algorithms