Algorithms' Analysis

Syllabus: 

Complexity of algorithms: O notation, analysis of time and space consumption in memory. Problem complexity: polynomial reduction, classes of decision problems (P, NP, NP-difficult, etc.). Algorithmic techniques: greedy algorithms, division and conquest dynamic programming. Problem analysis: search and ordering, graph problems, computational geometry problems.

Bibliography

Mandatory: 

•    Kleinberg, J., & Éva Tardos. (2005). Algorithm Design. Addison Wesley.
•    Dasgupta, S., Papadimitriou, C. H., & Vazirani, U. V. (2008). Algorithms. McGraw-Hill.
•    Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction to algorithms (3rd ed.). MIT press Cambridge.

Complementary: 

•    Bentley, J. L. (2000). Programming pearls. Addison-Wesley Professional.
•    Skiena, S. S. (2008). The Algorithm Design Manual. Springer.
•    Leiserson, C. E., Rivest, R. L., Cormen, T. H., & Stein, C. (2002). Algorithms: Theory and Practice (7th ed.). Campus.
•    Lucchesi, C. L., Simon, I., Simon, I., Simon, J., & Kowaltowski, T. (1979). Theoretical Aspects of Computing. IMPA.