The notes are taken from the Algorithms course on Coursera (Part I, Part II).
This course covers the essential information that every serious programmer needs to know about algorithms and data structures, with emphasis on applications and scientific performance analysis of Java implementations. Part I covers elementary data structures, sorting, and searching algorithms. Part II focuses on graph- and string-processing algorithms.
Resources link:
- Algorithms, 4th Edition
- Lecture PPT
- Introduction to Algorithms (MIT Open Course)