If you prefer to look and listen rather than to read I can recommend the MIT course "Introduction to Algorithms". You can watch it free here: http://academicearth.org/courses/introduction-to-algorithms
I found it very good and pedagogical even though I don't have enough knowledge of the math involved.