Princeton University Algorithms, Part I by Kevin Wayne, Robert Sedgewick https://www.coursera.org/course/algs4partI